web-dev-qa-db-ja.com

PIL:ImportError:_imaging拡張機能は、枕または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が返されます。ですから、それが機能するよりも少ないことには驚かないでしょう。しかし、誰もがエラーを「修正」する方法を知っていますか?

私はcondaを介してpython2.7を管理するwin7で実行しています。出力を変更せずに、パッケージも削除して再インストールしようとしました。

ヘルプは大歓迎です。

18
C.Buhl

これはインストールの問題のみです。

システムに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]]
19
aibotnet

これはpython 3.6の問題です。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")

これで問題が解決します。よろしく

9
ibrahim

この問題は、PIL /枕のPythonパッケージがシステムのアップまたはダウンバージョンであることが原因であり、この問題が原因でシステムで生成されます。

次のコマンドを確認してください:

Sudo apt-get install python-PIL

このパッケージがインストールされているかどうかを確認します。インストールされている場合は、次のコマンドで削除してみてください。

Sudo apt-get remove python-PIL

これが機能することを確認して、PIL /枕のパッケージをシステムから削除します。

そして最後に、このコマンドはこのパッケージの問題を解決するのに役立ちます:

Sudo apt-get autoremove python-PIL

次に、PIL/Pillowパッケージを再インストールします。

Sudo apt-get install python-pil

これは問題の解決に役立ちます。

3

おそらく、依存関係の1つにPILが必要であり、PILがPillowの後にインストールされてしまい、サイトパッケージのディレクトリで競合が発生する可能性があります。インポート文が_imagingをPillowインストールではなく正規のPILインストールからインポートしているため、このエラーが表示されていると思います。

PILまたは枕を必要とする競合するパッケージで過去に問題がありました。もちろん枕は好ましいパッケージです。私はあなたのパッケージの依存関係を見てみましょう。 PILに依存するものを見つけた場合は、依存関係をPillowに変更するプルリクエストを送信するか、その変更で独自のフォークを作成することもできます。私の状況では、プロジェクトは長い間活動をしていないようだったので、フォークは私が解決したオプションでした。

最終的には、PILパッケージに依存しないようにする必要があります(アクティブではなくなったため)。

3
David Sanders