2010-06-19 61 views
15

Tôi đã cài đặt PIL (thư viện hình ảnh Python).Lỗi PIL: Mô-đun _imaging C chưa được cài đặt

Khi tôi chạy Python:

import PIL 
import Image 
import _imaging 

Tôi không nhận lỗi. Tuy nhiên, khi chạy ứng dụng của tôi, nó làm tăng

The _imaging C module not installed 
+0

Tôi đã gặp phải vấn đề tương tự. Cài đặt sạch ** PIL 1.1.7 ** (hiện tại mới nhất) lên trên cài đặt sạch trên ** python 2.7.8 ** (hiện tại mới nhất) đã khắc phục được sự cố. Đảm bảo python 2.7 của bạn là ** 32 bit **. –

Trả lời

3

tôi đăng câu trả lời này vào đường dẫn mà bạn đã gửi (cảm ơn bạn vì điều đó), nhưng figured tôi muốn đăng bài trên nguồn là tốt. Xin lỗi vì bài dupe.

Tôi đã hy vọng rằng có một cách để làm điều này mà không cần biên dịch lại nội dung. Tôi tình cờ sử dụng virtualenv. Tôi đã tìm thấy rằng nếu tôi thổi đi cài đặt env ảo của tôi và sau đó cài đặt lại với pip, hình ảnh bắt đầu hoạt động trở lại. Những bước này dường như làm việc (lưu ý, tôi đang sử dụng OSX)

Không chắc chắn nếu mattered này, nhưng kiểm tra để xem nếu jpeg được cài đặt

winesap:~ $ port installed | grep -i jpeg 
    jpeg @7_0 
    jpeg @8a_0 (active) 

Hãy chắc chắn rằng tôi có PIP cài đặt

sudo port -v install py26-pip 

Tháo môi trường ảo cũ tôi đã và tái tạo nó

rm -rf ve 
virtualenv –no-site-packages –distribute ve 
. ./ve/bin/activate 

Install pil và Đan đi vào virtualenv

echo “pil” > requirements.pip 
echo “django” >> requirements.pip 
pip-2.6 install -E ./ve/ -r requirements.pip 

Kiểm tra xem quá trình nhập có hoạt động không. Lưu ý thiếu lỗi mô-đun C đáng ghét

python 
>>import import ImageFont 
>> 

Hy vọng điều này hữu ích.

+0

Yeah không có vấn đề, tôi đã được chỉ dựa trên chỉ apache mod_wsgi django tinh khiết và python – ApPeL

3

Trên Windows, xóa _imaging.pyd và _imagingft.pyd bên trong C: \ Python27. Để lại tất cả các mô-đun hình ảnh bên trong thư mục C: \ Python27 \ Lib \ site-packages \ PIL.

Nó phù hợp với tôi.

2

Dưới đây là một số điều có thể giúp bạn nếu from PIL import Image hoạt động nhưng import _imaging không thành công. Nếu Image cũng không thành công, hãy xem Lưu ý ở cuối.

Trên Ubuntu 13.04 (hiếm), tôi gặp sự cố này. Nó chỉ ra rằng Ubuntu cài đặt _imaging.so ở một nơi mà App Engine không mong đợi: /usr/lib/python2.7/dist-packages thay vì /usr/lib/python2.7/dist-packages/PIL. Vì vậy, _imaging.so không phải là bất cứ nơi nào trong sys.path.

Dưới đây là một vài cách xung quanh này:

Đặt module PIL C ở đâu đó đã có trên đường dẫn:

tôi nhận thấy rằng /path/to/google_appengine/lib/PIL-1.1.7 là trong sys.path, nhưng thư mục không tồn tại trong cài đặt của tôi . Vì vậy, tôi tạo ra các thư mục và sao chép các tập tin .so vào nó, và tất cả mọi thứ làm việc. Bạn sẽ phải làm điều này một lần nữa, mỗi lần bạn cập nhật App Engine SDK, nhưng ít nhất nó không gây rối với mã bạn đang phát triển.

Thao tác sys.path trong main.py:

Mã này sẽ kiểm tra xem chúng ta đang chạy appserver dev, và nếu như vậy, thêm dir đúng con đường. Chưa được kiểm tra nhưng nó phải làm việc;)

# Find _imaging.so and put its directory here. 
# `locate _imaging.so` or `dpkg -L python-imaging` 
PIL_PATH = '/usr/lib/pyshared/python2.7/' 

PRODUCTION_MODE = not os.environ.get(
    'SERVER_SOFTWARE', 'Development').startswith('Development') 

if not PRODUCTION_MODE: 
    sys.path.insert(PIL_PATH) 

Tôi cho rằng điều này có thể làm nhiều hơn là chỉ các module PIL sẵn cho bạn, do đó sẽ giới thiệu (chưa nhiều) sự khác nhau giữa phát triển và sản xuất. Ngoài ra, kỹ thuật này liên quan đến việc sửa đổi mã nguồn của ứng dụng của bạn, có vẻ như một cuộc gọi không tốt nếu có nhiều người phát triển nó.


Note: Nếu import Image thất bại, bạn có thể đã quên thêm thư viện PIL để app.yaml của bạn.

libraries: 
- name: PIL 
    version: "latest" 

Bạn có thể cần phải khởi động lại dev_appserver.py sau khi thêm thư viện này để thay đổi được phản ánh trong ví dụ: bảng điều khiển tương tác.

0

lý do tại sao các vấn đề tồn tại, là với PIL 1.1.6? (chỉ 1.1.7), Có phải phiên bản 1.1.6 không sử dụng các thư viện này không?

PIL 1.1.6 cũng sử dụng thư viện C nội bộ để tăng tốc độ.

Đối với Windows, bạn nên sử dụng các gói được biên dịch trước. http://www.pythonware.com/products/pil/ cung cấp mã nhị phân Windows X86 cho 1.1.7. Bạn có thể gặp sự cố với 1.1.7 Windows nhị phân. Thư viện freetype C tham chiếu CRT gỡ lỗi không khả dụng trên tất cả các máy . Bạn có thể dễ dàng vá tệp _imagingft.pyd bằng trình chỉnh sửa hex.

+0

Bạn có thể giúp chi tiết làm thế nào để sửa chữa các tài liệu tham khảo CRT trong tập tin _imagingft.pyd với trình soạn thảo hex? Cảm ơn – egesuato

+0

Kiểm tra các giải pháp tại đây và xem nó có giúp https://bitbucket.org/effbot/pil-117/issues/1/windows-build-of-_imagingft-module-fails không. Vui lòng xem kỹ chúng và tạo bản sao lưu trước khi thử các giải pháp – Transformer

0

Tôi đã hoàn toàn thiếu các tệp _imaging.* trong thư mục lib/site-packages/PIL.

Tôi đã tải về trứng từ đây (các tập tin chính xác phụ thuộc vào nền tảng này):

https://pypi.python.org/pypi/Pillow/2.7.0

đổi tên nó từ .egg để .zip and copied all the files in the folder PIL that start with _imaging to the folder lib/site-packages/PIL` .

.. Sự cố được giải quyết

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