Lỗi trong khi cài đặt Gối (mô-đun Python) trong Linux


165

Tôi đang cố gắng cài đặt Gối (mô-đun Python) bằng pip, nhưng nó gây ra lỗi này:

ValueError: jpeg is required unless explicitly disabled using --disable-jpeg, aborting

Vì vậy, như lỗi nói, tôi đã thử:

pip install pillow --global-option="--disable-jpeg"

Nhưng nó thất bại với:

error: option --disable-jpeg not recognized

Bất kỳ gợi ý làm thế nào để đối phó với nó?

Câu trả lời:


322

Có một lỗi được báo cáo cho Gối ở đây , điều này cho thấy rằng libjpegzlibhiện được yêu cầu kể từ Gối 3.0.0.

Các hướng dẫn cài đặt cho Gối trên Linux đưa ra lời khuyên về cách cài đặt các gói này. Lưu ý rằng không phải tất cả các gói sau đây đều có thể bị thiếu trên máy của bạn (ý kiến ​​cho rằng chỉ libjpeg8-devthực sự bị thiếu).

pip / PyPi (Gối> 3.4.2)

Các bản phát hành mới nhất của Gối có sẵn trên PyPi dưới dạng bánh xe - cơ chế đóng gói tiêu chuẩn mới cho Python. Các gói dựng sẵn này bao gồm tất cả các phụ thuộc nhị phân cần thiết để cho phép Gối chạy và nên được sử dụng nếu bạn muốn cài đặt Gối bằng PyPi

Để sử dụng bánh xe, bạn cần phải có một phiên bản pip>=1.4. Nếu bạn đang sử dụng một pip --versionpip nâng cấp phiên bản ( ) trước đó bằng cách sử dụng như sau:

pip install --upgrade pip 

Sau khi pipđược nâng cấp, pip installsẽ sử dụng các tệp bánh xe dành riêng cho nền tảng theo mặc định nếu chúng có sẵn. Sử dụng lệnh sau để nâng cấp Gối lên phiên bản mới nhất có sẵn trên PyPi:

pip install --upgrade pillow

Ubuntu 12.04 LTS hoặc Raspian Wheezy 7.0

sudo apt-get install libtiff4-dev libjpeg8-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev tcl8.5-dev tk8.5-dev python-tk

Ubuntu 14.04

sudo apt-get install libtiff5-dev libjpeg8-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev python-tk

Ubuntu 18.04

sudo apt install libjpeg8-dev zlib1g-dev

Fedora 20

Fedora 20 tương đương libjpeg8-devlibjpeg-devel.

sudo yum install libtiff-devel libjpeg-devel libzip-devel freetype-devel lcms2-devel libwebp-devel tcl-devel tk-devel

Mac OS X (thông qua Homebrew)

Trên Mac OS X với Homebrew, điều này có thể được sửa bằng cách sử dụng:

brew install libjpeg zlib

Bạn cũng có thể cần buộc zlib liên kết bằng cách sử dụng như sau:

brew link zlib --force

Cập nhật tháng 4 năm 2019: Trong Mojave, phần trên sẽ không hoạt động và bạn cần chạy các phần sau như được lấy từ báo cáo lỗi này trên Gối

sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /

Cập nhật tháng 7 năm 2016: Không còn công thức zlibcó sẵn trong kho lưu trữ chính (Homebrew sẽ nhắc bạn cài đặt lzlibmột thư viện khác và sẽ không giải quyết vấn đề này).

một công thức có sẵn trong các giá trị nhân bản kho. Bạn có thể nhấn vào kho lưu trữ này và cài đặt như bình thường:

brew tap homebrew/dupes
brew install zlib

Hoặc bạn có thể cài đặt zlibqua xcodethay vào đó, như sau:

xcode-select --install

Cảm ơn phượng hoàng, Panos Angelopoulou, nelsonvarela, benjaminz và Kal trong các bình luận

Sau khi cài đặt xong, cài đặt pip của Gối sẽ hoạt động bình thường.


2
Chỉ libjpeg8-devcó thể là tốt.
Matheus Portela

3
Tôi đã phải đối mặt với cùng một vấn đề với Mac OS X. Tôi giải quyết nó khi thực thi brew install libjpeg brew install zlib
Panos Angelopoulos

2
Cài đặt libjpeg-dev tốt hơn - không có '8', sau đó cũng thấy rằng zlib1g-dev cũng bị thiếu. Sau: sudo apt-get install libjpeg-dev zlib1g-devcài đặt Pip Gối hoạt động trên Mint 17.1 (= Ubuntu 14.04 LTS).
arntg

6
Tôi đã buộc phải liên kết zlib:brew link zlib --force
nelsonvarela

2
brew install zlibkhông còn hoạt động trên một số máy Mac, giải pháp bên dưới xcode-select --installdường như thực hiện thủ thuật, vui lòng cập nhật giải pháp của bạn vì đây là giải pháp toàn diện nhất và là giải pháp đầu tiên mà khách truy cập nhìn thấy. Cảm ơn bạn rất nhiều cho công việc của bạn!
benjaminz

37

Trên Raspberry pi II, tôi cũng gặp vấn đề tương tự. Sau khi thử những điều sau, tôi đã giải quyết vấn đề. Giải pháp là:

sudo apt-get update
sudo apt-get install libjpeg-dev

sudo apt-get install libjpeg-dev cũng hoạt động cho Ubuntu 14):
Amir

34

Cảm ơn bạn @mfitzp. Trong trường hợp của tôi (CentOS) những lib này không có sẵn trong repo yum, nhưng thực sự giải pháp thậm chí còn dễ dàng hơn. Tôi đã làm gì:

sudo yum install python-devel
sudo yum install zlib-devel
sudo yum install libjpeg-turbo-devel

Và bây giờ cài đặt gối kết thúc thành công.


1
Cảm ơn điều đó đã làm việc cho tôi mặc dù tôi không cần con trăn
Dustfinger - Tái lập lại

1
Làm việc cho tôi cũng vậy, chỉ cần cài đặt gói libjpeg-turbo-devel!
kaycee

Làm việc trên CentOS 7 như một cơ duyên!
Raptor

Python-devel này không bắt buộc trên máy yazon linux yum. Tôi nghĩ rằng libjpeg-turbo-devel cuối cùng là gói bị thiếu.
Neeraj Gupta

12

Cách khắc phục nhanh nhất là nâng cấp pip. Đã làm việc cho tôi:

pip install --upgrade pip

đã làm cho tôi. Pip cài đặt Gối (nếu không hoạt động xóa bộ nhớ cache bằng cách cài đặt pip - nâng cấp pip) Sau đó chạy lại Cài đặt Pip
Tzvi Gregory Kaidanov

Điều này cũng làm việc cho tôi. Tôi có Python 2.6.6 và 3.5.1 trên máy ảo CentOS và đã chạy pip3.5 install --upgrade pip3.5. Sau đó, pip3.5 install pillowchạy mà không có bất kỳ vấn đề nào và duy trì tính toàn vẹn của cài đặt Python2 và Python3.
Evan


10
brew install zlib

trên OS X không hoạt động nữa và thay vào đó sẽ nhắc cài đặt lzlib. Cài đặt không giúp được gì.

Thay vào đó, bạn cài đặt các công cụ dòng lệnh XCode và nên cài đặt zlib

xcode-select --install

Một chút giải thích sẽ hữu ích hơn nhiều.
benjaminz

9

Điều này làm việc cho tôi để giải quyết lỗi jpeg và zlib:

C:\Windows\system32>pip3 install pillow --global-option="build_e
xt" --global-option="--disable-zlib" --global-option="--disable-jpeg"

1
Tôi cần cài đặt Gối trên môi trường mà tôi không có quyền truy cập root - đây là giải pháp hiệu quả với tôi.
Nielk

6

Tôi đã có ValueError: zlib is required unless explicitly disabled using --disable-zlibnhưng nâng cấp pip từ 7.x lên 8.y đã giải quyết vấn đề.

Vì vậy, tôi sẽ cố gắng cập nhật các công cụ trước khi bất cứ điều gì khác.

Điều đó có thể được thực hiện bằng cách sử dụng:

pip install --upgrade pip


0

Thử

pip install pillow

Nếu nó không hoạt động, hãy thử xóa

cache by pip install --upgrade pip

Sau đó lại chạy

pip install pillow

-2

Trên debian / ubfox bạn chỉ cần: libjpeg62-turbo-dev

Rất đơn giản sudo apt install libjpeg62-turbo-devpip install pillow

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.