Pip cài đặt lỗi Matplotlib với virtualenv


106

Tôi đang cố gắng cài đặt matplotlib trong một virtualenv mới.

Khi tôi làm:

pip install matplotlib

hoặc là

pip install http://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-1.1.0/matplotlib-1.1.0.tar.gz

Tôi gặp lỗi này:

building 'matplotlib._png' extension

gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -fPIC -  DPY_ARRAY_UNIQUE_SYMBOL=MPL_ARRAY_API -DPYCXX_ISO_CPP_LIB=1 -I/usr/local/include -I/usr/include -I. -I/home/sam/django-projects/datazone/local/lib/python2.7/site-packages/numpy/core/include -I. -I/usr/include/python2.7 -c src/_png.cpp -o build/temp.linux-x86_64-2.7/src/_png.o

src/_png.cpp:10:20: fatal error: png.h: No such file or directory

compilation terminated.

error: command 'gcc' failed with exit status 1

Bất cứ ai có một ý tưởng những gì đang xảy ra?

Bất kỳ giúp đỡ nhiều đánh giá cao.


2
Bạn cũng có thể thấy The following required packages can not be built: freetype, pnglỗi tương tự trong (tôi nghĩ) phiên bản mới hơn của pip.
LondonRob

Câu trả lời:


176

Xây dựng Matplotlib yêu cầu libpng(và freetypecả) không phải là thư viện python, vì vậy pipkhông xử lý việc cài đặt nó (hoặc freetype).

Bạn sẽ cần cài đặt một thứ gì đó dọc theo dòng libpng-develfreetype-devel(hoặc bất cứ thứ gì tương đương dành cho hệ điều hành của bạn).

Xem các yêu cầu / hướng dẫn xây dựng cho matplotlib.


44
Cảm ơn bạn về thông tin! Cuối cùng tôi đã nhận nó làm việc bằng cách cài đặt phụ thuộc sau đây trong ubuntu: libpng-dev, libjpeg8-dev, libfreetype6-dev.
Darwin Tech

37
sudo apt-get build-dep python-matplotlibcũng không lừa!
grisaitis

2
Nó có thể hoạt động, nhưng lưu ý rằng nó muốn cài đặt khá nhiều gói (nhiều hơn có thể nằm trong hộp nhận xét này), nhưng khoảng 0,6 GB giá trị của các gói.
Achal Dave

18
Trên hệ thống debian (wheezy / không ổn định) của tôi, nó vẫn bị lỗi ngay cả khi libfreetype6-devđã được cài đặt. Nó chỉ ra rằng tôi cũng cần pkg-configcài đặt.
Jon

Tôi thực sự đã sử dụng libfreetype6-dev trên ubuntu 14.04. Matplotlib dường như không chọn nó.
tutuca


30

Vì tôi đã vật lộn với vấn đề này hai lần (ngay cả sau khi cài đặt kubuntu 15.04 mới) và cài đặt freetype không giải quyết được gì, tôi đã điều tra thêm.

Giải pháp:
Từ vấn đề github:

Lỗi này chỉ xảy ra nếu pkg-config không được cài đặt;
một đơn giản
sudo apt-get install pkg-config
sẽ củng cố các đường dẫn bao gồm ngay bây giờ.

Sau khi cài đặt này diễn ra suôn sẻ.


Ở đây cũng vậy. pip install matplotlib đã cho tôi lỗi: IMPORTANT WARNING: pkg-config is not installed. matplotlib may not be able to find some of its dependencies.Freetype cho thấy chưa được cài đặt. Tôi vừa làm brew install pkg-configvà đã có thể vượt qua.
Lily

Đây cũng là vấn đề về Bash trên Ubuntu trên Windows Insider Preview
Jens de Bruijn

27

Như một phần bổ sung, trên Amazon EC2, những gì tôi cần làm là:

sudo yum install freetype-devel
sudo yum install libpng-devel
sudo pip install matplotlib

6
Bạn nên cài đặt một gói vào một môi trường ảo, điều này piprất thú vị. Do đó, sudo pip installphủ nhận hầu hết tính hữu ích mà pip mang lại.
La Mã

8

Trên OSX, tôi có thể cài đặt matplotlib thông qua:

pip install matplotlib==1.4.0

chỉ sau khi tôi chạy:

brew install freetype


2
sudo apt-get install libpng-dev libjpeg8-dev libfreetype6-dev

đã làm việc cho tôi trên Ubuntu 14.04


Tôi cần sudo apt-get install pkg-configđầu tiên mặc dù.
jpcgt

@RahulChauhan: Vui lòng đăng giải pháp thay thế của bạn dưới dạng một câu trả lời riêng thay vì cố gắng chỉnh sửa nó thành câu trả lời của người khác.
Ilmari Karonen 14/09/17

0

Không có câu trả lời nào ở trên phù hợp với tôi trong Mint, vì vậy tôi đã làm:

sudo apt-get install build-essential g++

0

Nếu trên MacOSx hãy thử

xcode-select --install

Điều này phù hợp subprocess 32, lý do cho sự thất bại.


0

Để giảm các gói bắt buộc phải cài đặt, bạn chỉ cần

apt-get install -y \
    libfreetype6-dev \
    libxft-dev && \
    pip install matplotlib

và bạn sẽ nhận được các gói sau được cài đặt cục bộ

Collecting matplotlib
  Downloading matplotlib-2.2.0-cp35-cp35m-manylinux1_x86_64.whl (12.5MB)
Collecting pytz (from matplotlib)
  Downloading pytz-2018.3-py2.py3-none-any.whl (509kB)
Collecting python-dateutil>=2.1 (from matplotlib)
  Downloading python_dateutil-2.6.1-py2.py3-none-any.whl (194kB)
Collecting pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 (from matplotlib)
  Downloading pyparsing-2.2.0-py2.py3-none-any.whl (56kB)
Requirement already satisfied: six>=1.10 in /opt/conda/envs/pytorch-py35/lib/python3.5/site-packages (from matplotlib)
Collecting cycler>=0.10 (from matplotlib)
  Downloading cycler-0.10.0-py2.py3-none-any.whl
Collecting kiwisolver>=1.0.1 (from matplotlib)
  Downloading kiwisolver-1.0.1-cp35-cp35m-manylinux1_x86_64.whl (949kB)
Requirement already satisfied: numpy>=1.7.1 in /opt/conda/envs/pytorch-py35/lib/python3.5/site-packages (from matplotlib)
Requirement already satisfied: setuptools in /opt/conda/envs/pytorch-py35/lib/python3.5/site-packages/setuptools-27.2.0-py3.5.egg (from kiwisolver>=1.0.1->matplotlib)
Installing collected packages: pytz, python-dateutil, pyparsing, cycler, kiwisolver, matplotlib
Successfully installed cycler-0.10.0 kiwisolver-1.0.1 matplotlib-2.2.0 pyparsing-2.2.0 python-dateutil-2.6.1 pytz-2018.3

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.