[英]PIL: ImportError: The _imaging extension was built for another version of pillow or 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
每當我嘗試使用 PIL 庫時。 我正在嘗試加載和處理一堆.gif,而我現在正在嘗試的是以下內容:
from PIL import Image
通過 scipy 嘗試不同的方法:
import scipy.ndimage as spnd
os.chdir('C:\\WeatherSink\\data\\')
spnd.imread('2014-11-03-0645.gif')
失敗:
---------------------------------------------------------------------------
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.
第一種方法指導我安裝 PIL 的版本。 我嘗試模擬 getattr(...),然后返回 None。 因此,我對它的功能不足並不感到驚訝。 但是有誰知道如何“修復”這些錯誤?
我在win7上運行,通過conda管理python2.7。 我也嘗試刪除並重新安裝這些軟件包,而輸出沒有任何變化。
非常感謝您的幫助。
這只是一個安裝問題。
如果未安裝,請先在系統上安裝 pip。 它也可用於 Windows 。
升級你的 numpy、pip/pillow、scipy:
pip install -U numpy
pip install -U pil/pillow
pip install -U scipy
Windows 的最佳選擇是使用anaconda 。
我認為 pip 已經安裝在 conda 中。 這將解決您的系統版本問題。
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]]
這是 python 3.6 編輯文件中的一個問題: C:\Anaconda\lib\site-packages\PIL\Image.py
並更改代碼:
if PILLOW_VERSION != getattr(core, 'PILLOW_VERSION', None):
raise ImportError("The _imaging extension was built for another "
" version of Pillow or PIL")
將其更改為:
if core.PILLOW_VERSION != getattr(core, 'PILLOW_VERSION', None):
raise ImportError("The _imaging extension was built for another "
" version of Pillow or PIL")
這將解決問題。 問候
也許您的依賴項之一需要 PIL,而 PIL 最終會在 Pillow 之后安裝,從而導致您的站點包目錄發生沖突。 我假設您看到該錯誤是因為 import 語句正在從合法的 PIL 安裝而不是 Pillow 安裝中導入_imaging
。
過去,我在需要 PIL 或 Pillow 的沖突包方面遇到了麻煩。 枕頭當然是首選包裝。 我會看看你的包的依賴關系。 如果你能找到一個依賴於 PIL 的,我會提交一個拉取請求,將依賴關系更改為 Pillow,或者甚至可以使用該更改創建你自己的分支。 對於我的情況,分叉是我決定的選項,因為該項目似乎很長時間沒有任何活動。
最終,您希望消除對 PIL 包的任何依賴(因為它不再處於活動狀態)以支持 Pillow。
這個問題是因為 PIL/pillow 的 Python 包是您系統的 Up 或 Down 版本,並且由於這個問題是在您的系統中生成的。
嘗試檢查此命令:
sudo apt-get install python-PIL
檢查此軟件包是否安裝。 如果已安裝,請嘗試使用以下命令刪除:
sudo apt-get remove python-PIL
檢查這是否可以從系統中刪除 PIL/pillow 包。
最后這個命令將幫助你解決這個包問題:
sudo apt-get autoremove python-PIL
然后重新安裝 PIL/Pillow 包:
sudo apt-get install python-pil
這應該可以幫助您解決問題。
我認為實際上是您在運行代碼時使用的虛擬環境。 很多時候計算機將運行 Anaconda 路徑而不是 Python3。 因此,您可以在調用代碼之前在命令提示符下嘗試 python 或 python 3。 示例:python3 image.py。 或者你可以刪除 anaconda :D。
重新安裝提到的錯誤可能也可以幫助您的軟件包。 當pip install -U
不起作用時,它可以在我的計算機上運行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.