2014-11-03 12 views
14

tôi nhận được lỗi:PIL: ImportError: Phần mở rộng _imaging được xây dựng cho một phiên bản khác của gối hoặc PIL

--------------------------------------------------------------------------- 
ImportError        Traceback (most recent call last) 
<ipython-input-4-0f6709e38f49> in <module>() 
----> 1 from PIL import Image 

C:\Anaconda\lib\site-packages\PIL\Image.py in <module>() 
    61  from PIL import _imaging as core 
    62  if PILLOW_VERSION != getattr(core, 'PILLOW_VERSION', None): 
---> 63   raise ImportError("The _imaging extension was built for another " 
    64       " version of Pillow or PIL") 
    65 

ImportError: The _imaging extension was built for another version of Pillow or PIL 

Bất cứ khi nào tôi cố gắng sử dụng thư viện PIL. Tôi đang cố gắng để tải và làm việc trên một loạt các của .gif, và những gì tôi đang cố gắng bây giờ, như sau:

from PIL import Image 

Đang cố gắng một cách tiếp cận khác nhau, thông qua scipy với:

import scipy.ndimage as spnd 
os.chdir('C:\\WeatherSink\\data\\') 
spnd.imread('2014-11-03-0645.gif') 

Không phù hợp với:

--------------------------------------------------------------------------- 
ImportError        Traceback (most recent call last) 
<ipython-input-3-23c383b79646> in <module>() 
     1 os.chdir('C:\\WeatherSink\\data\\') 
----> 2 spnd.imread('2014-11-03-0645.gif') 

C:\Anaconda\lib\site-packages\scipy\ndimage\io.pyc in imread(fname, flatten, mode) 
    36   from PIL import Image 
    37  except ImportError: 
---> 38   raise ImportError("Could not import the Python Imaging Library (PIL)" 
    39       " required to load image files. Please refer to" 
    40       " http://pypi.python.org/pypi/PIL/ for installation" 

ImportError: Could not import the Python Imaging Library (PIL) required to load image files. Please refer to http://pypi.python.org/pypi/PIL/ for installation instructions. 

Cách tiếp cận đầu tiên hướng dẫn tôi về các phiên bản cài đặt PIL. Tôi cố gắng mô phỏng getattr (...), và trả về None. Vì vậy, tôi không ngạc nhiên khi nó ít hoạt động hơn. Nhưng có ai biết cách sửa lỗi không?

Tôi đang chạy trên win7, quản lý python2.7 thông qua conda. Tôi đã cố gắng để loại bỏ và cài đặt lại các gói là tốt, mà không có bất kỳ thay đổi trong đầu ra.

Trợ giúp được đánh giá cao.

+1

Đầu tiên là bạn có nhiều phiên bản PIL hoặc Pillow được cài đặt và có thể có các môi trường khác nhau. Tìm tất cả, gỡ cài đặt tất cả, sau đó cài đặt lại Gối mới. – Hugo

Trả lời

3

Có thể một trong các phụ thuộc của bạn yêu cầu PIL và PIL kết thúc được cài đặt sau Pillow, gây xung đột trong gói trang web của bạn. Tôi giả sử bạn thấy lỗi đó vì câu lệnh nhập đang nhập _imaging từ cài đặt PIL hợp pháp chứ không phải cài đặt Gối.

Tôi đã gặp sự cố trong quá khứ với các gói xung đột yêu cầu PIL hoặc Pillow. Gối là, tất nhiên, các gói ưa thích. Tôi sẽ xem xét các phụ thuộc của các gói của bạn. Nếu bạn có thể tìm thấy một trong đó phụ thuộc vào PIL, tôi sẽ gửi một yêu cầu kéo mà thay đổi sự phụ thuộc vào Gối hoặc thậm chí có thể tạo ra ngã ba của riêng bạn với sự thay đổi đó. Đối với tình hình của tôi, forking là lựa chọn mà tôi đã giải quyết kể từ khi dự án dường như không có hoạt động trên nó trong một thời gian dài.

Cuối cùng, bạn muốn loại bỏ bất kỳ phụ thuộc nào vào gói PIL (vì nó không còn hoạt động) có lợi cho Pillow.

+0

http://scikit-learn.org/stable/auto_examples/applications/face_recognition.html –

+3

Jan, tôi nên tìm gì trên trang đó? –

+0

có, xin vui lòng :) :) –

16

Đây chỉ là sự cố cài đặt. đầu tiên cài đặt pip trong bạn hệ thống nếu nó không được insalled nó có sẵn cho các cửa sổ cũng https://pip.pypa.io/en/latest/installing.html

nâng cấp NumPy của bạn, pip/gối, scipy

pips cài đặt -U NumPy

pips cài đặt -U pil/gối

pips cài đặt -U scipy

hoặc lựa chọn tốt nhất cho các cửa sổ đang sử dụng anaconda

tôi nghĩ rằng pip đã được cài đặt trong conda. điều này sẽ giải quyết vấn đề phiên bản hệ thống của bạn.

In [1]: from PIL import Image 

In [2]: import scipy.ndimage as spnd 

In [3]: x = spnd.imread('ppuf100X91.gif') 

In [4]: print x 
[[255 255 255 ..., 255 255 255] 
[255 255 255 ..., 255 255 255] 
[255 255 255 ..., 255 255 255] 
..., 
[255 255 255 ..., 255 255 255] 
[255 255 255 ..., 255 255 255] 
[255 255 255 ..., 255 255 255]] 
+1

Nó giải quyết được vấn đề của tôi, thx! Tôi đã phải sử dụng 'pip install -U gối'' ('pip install -U pil' đã cho' Không thể tìm thấy một phiên bản đáp ứng các yêu cầu pil'). –

3

Vấn đề này là vì Python gói của PIL/gối là Up hoặc phiên bản xuống của hệ thống của bạn và do cho câu hỏi này là tạo ra trong hệ thống của bạn.

Hãy thử để kiểm tra lệnh này:

sudo apt-get install python-PIL 

Kiểm tra gói này là cài đặt hay không. Nếu nó được cài đặt hơn là cố gắng loại bỏ bằng lệnh:

sudo apt-get remove python-PIL 

Kiểm tra việc này sẽ làm việc để loại bỏ gói PIL/gối khỏi hệ thống của bạn.

Và cuối cùng lệnh này sẽ giúp bạn giải quyết vấn đề này gói:

sudo apt-get autoremove python-PIL 

Sau đó cài đặt lại PIL/Gối gói:

sudo apt-get install python-pil 

này sẽ giúp bạn giải quyết vấn đề.

1

Đây là một vấn đề trong python 3.6 Chỉnh sửa file: C: \ Anaconda \ lib \ site-packages \ PIL \ Image.py và mã thay đổi: nếu PILLOW_VERSION = getattr (lõi, 'PILLOW_VERSION', Không!): tăng ImportError ("Phần mở rộng _imaging được xây dựng cho nhau" "phiên bản của loại gối hoặc PIL" )

sự thay đổi đó để: nếu core.PILLOW_VERSION = getattr (lõi, 'PILLOW_VERSION', Không): tăng Nhập dữ liệu ("Tiện ích mở rộng _imaging được xây dựng cho phiên bản" "khác của Pillow hoặc PIL")

Điều này sẽ giải quyết được vấn đề. Kính trọng

+0

Hi Ibrahim, điều này cũng áp dụng cho Python 2.7? Và bạn có thể nhấn mạnh sự khác nhau giữa hai codebits không? –

+0

Có, trong python 2.7, nó có cùng một vấn đề. Vấn đề là nó nhập khẩu tất cả các ký hiệu với lõi không gian tên và địa chỉ không đổi mà không có không gian tên. – ibrahim

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