Матплотлиб
Это отличная библиотека для создания графов и визуализации в Python. Например, я использовал его для создания графов производительности в Моя слияние статьи И внутренне мы используем его сейчас и снова для визуализации любых производимых метрик. Это немного сложно установить внутри контейнера докера, хотя.
Установка MATPLOTLIB в альпийском Linux
На альпийском или альпийном образе докера, это возможно Чтобы установить Матплотлиб
; Однако он будет включать в себя компиляцию из источника, так как PIP не предоставляет никаких предварительно составленных двоичных файлов – это займет много времени. Если вы не против компиляции от источника, вам нужно будет иметь свои зависимости, чтобы сделать эту работу:
FROM python:3.6-alpine RUN apk add g++ jpeg-dev zlib-dev libjpeg make RUN pip3 install matplotlib
Установка MATPLOTLIB в Ubuntu
На Ubuntu или на основе Ubuntu на основе докера процесс намного проще:
FROM ubuntu:20.10 RUN apt-get update && apt-get install -y python3 python3-pip RUN pip3 install matplotlib
В любом случае, после того, как вы его установили, вы можете быстро генерировать отличные графики и визуализации:
import numpy as np from scipy.interpolate import splprep, splev import matplotlib.pyplot as plt from matplotlib.path import Path from matplotlib.patches import PathPatch N = 400 t = np.linspace(0, 3 * np.pi, N) r = 0.5 + np.cos(t) x, y = r * np.cos(t), r * np.sin(t) fig, ax = plt.subplots() ax.plot(x, y) plt.xlabel("X value") plt.ylabel("Y value") plt.savefig('1.png')
Приложение: Alpine VS Ubuntu Pip Установить
Почему Ubuntu процесс быстро и просто и альпийский процесс медленно? Причина в том, что глибц
. Диски PIP для Матплотлиб
Составлены программы C/C ++, которые динамически ссылаются на Glibc
И альпийский не имеет глибц
.
Alpine пытается оставаться маленьким и так использует Musl-libc
вместо. К сожалению, это означает составление источника на Alpine, что может быть длительным процессом.
Thisguycanteven На переполнении стека есть более подробно:
Pip сначала смотрит на колесо с правильными двоичными дворами, если он не может найти его, он пытается скомпилировать двоичные файлы из источника C/C ++ и связывает их против мускул
. Во многих случаях это даже не будет работать, если у вас нет заголовков Python из Python3-dev или Build Tools, таких как Make.
Теперь серебряная подкладка, как упомянула другие, есть APK
Пакеты с надлежащими дворами, предоставляемыми сообществом, использование их, сэкономит вам (иногда длинный) процесс построения дворовиков.
Оригинал: “https://dev.to/adamgordonbell/install-matplotlib-in-a-docker-container-51b1”