Рубрики
Без рубрики

Установите matplotlib в контейнер докеров

Matplotlib – отличная библиотека для создания графов и визуализаций в Python. Например, я … Теги с Python, Docker, Linux.

Матплотлиб Это отличная библиотека для создания графов и визуализации в 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”