2011-10-04 39 views
25

Tôi đang sử dụng Ubuntu và VitualEnv cho dự án Django của mình.pip install PIL -E TICKETS-1 - Không hỗ trợ JPEG/PNG

Tôi có thư viện PIL được cài đặt bằng Trình quản lý gói Synaptic và nó hoạt động tốt. Nhưng khi tôi tạo ra một VitrualEnv và cố gắng cài đặt PIL sử dụng pip nó installes nhưng tôi nhận được hành vi kỳ lạ này:

-------------------------------------------------------------------- 
PIL 1.1.7 SETUP SUMMARY 
-------------------------------------------------------------------- 
version  1.1.7 
platform  linux2 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53) 
       [GCC 4.5.2] 
-------------------------------------------------------------------- 
*** TKINTER support not available 
*** JPEG support not available 
*** ZLIB (PNG/ZIP) support not available 
*** FREETYPE2 support not available 
*** LITTLECMS support not available 
-------------------------------------------------------------------- 
To add a missing option, make sure you have the required 
library, and set the corresponding ROOT variable in the 
setup.py script. 

Tôi đã hy vọng rằng tôi có thể sử dụng requirements.txt cho tất cả phụ thuộc của tôi, nhưng có thể PIL phải bằng cách nào đó được cài đặt bằng tay ... nhưng làm thế nào?

Edit: Cảm ơn bạn John Keyes, bạn là đúng, tôi chạy:

sudo ln -s /usr/lib/x86_64-linux-gnu/libfreetype.so /usr/lib/ 
sudo ln -s /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/ 
sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib/ 

và sau một cố gắng cho PIL cài đặt tôi nhận được:

-------------------------------------------------------------------- 
PIL 1.1.7 SETUP SUMMARY 
-------------------------------------------------------------------- 
version  1.1.7 
platform  linux2 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53) 
       [GCC 4.5.2] 
-------------------------------------------------------------------- 
*** TKINTER support not available 
--- JPEG support available 
--- ZLIB (PNG/ZIP) support available 
--- FREETYPE2 support available 
*** LITTLECMS support not available 
- ------------------------------------------------------------------- 
To add a missing option, make sure you have the required 
library, and set the corresponding ROOT variable in the 
setup.py script. 

Chỉnh sửa: Bạn có thể cần phải cài đặt libfreetype6-dev libjpeg8-dev

Chỉnh sửa: Một tùy chọn tốt khác là sử dụng Pillow thay vì PIL

Trả lời

4

Giải pháp có vẻ hiệu quả đối với chúng tôi (như PIL 1.7.7) là gỡ cài đặt PIL trước và sau đó là Gối và sau đó lắp đặt gối - upgrade. Tất nhiên bạn cần cài đặt libjpeg8-dev.

+2

Cảm ơn, tôi đã thử rất nhiều thứ, nhưng đây là lần duy nhất khắc phục sự cố! – deweydb

+0

nghĩ rằng điều này có thể hữu ích: http://pythonadventures.wordpress.com/2013/05/19/problems-with-pil-use-pillow-instead/ – user2290820

+0

Sử dụng Gối là giải pháp goole. – x4snowman

5

Và chỉ trong trường hợp, nếu bạn đang sử dụng virtualenv, bạn không cần phải cần tạo liên kết tượng trưng cho toàn hệ thống, đây là cách giải quyết phổ biến mà làm việc trên bất kỳ kiến ​​trúc:

ln -s /usr/lib/`dpkg-architecture -qDEB_HOST_MULTIARCH`/libz.so $VIRTUAL_ENV/lib/ 
ln -s /usr/lib/`dpkg-architecture -qDEB_HOST_MULTIARCH`/libfreetype.so $VIRTUAL_ENV/lib/ 
ln -s /usr/lib/`dpkg-architecture -qDEB_HOST_MULTIARCH`/libjpeg.so $VIRTUAL_ENV/lib/ 

Và bạn cần để thực hiện các dòng bên trong phiên làm việc được kích hoạt virtualenv, các liên kết sẽ được tạo bên trong thư mục virtualenv lib của bạn.

Lệnh dpkg-architecture -qDEB_HOST_MULTIARCH đang được sử dụng để phát hiện thư mục libs hệ thống chính (uname -i không đáng tin cậy). Và biến môi trường $VIRTUAL_ENV được đặt bởi virtualenv activate tập lệnh.

Các vấn đề liên quan