簡體   English   中英

PIL:ImportError:_imaging 擴展是為另一個版本的枕頭或 PIL 構建的

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM