1. ホーム
  2. python

[解決済み] imaging C モジュールがインストールされていない (Windowsの場合)

2022-02-07 22:46:02

質問内容

django/PIL/Imagingでpdfを生成しようとしていますが、pdfに画像を入れるまではすべてうまくいっています。

Exception Type: ImportError
Exception Value:    
The _imaging C module is not installed
Exception Location: D:\install\python27\lib\site-packages\PIL\Image.py in __getattr__, line 37
Python Executable:  D:\install\python27\python.exe
Python Version: 2.7.1
Python Path:    
['D:\\~Sasha\\Portman',
 'D:\\install\\python27\\lib\\site-packages\\setuptools-0.6c11-py2.7.egg',
 'D:\\install\\python27\\lib\\site-packages\\pisa-3.0.33-py2.7.egg',
 'D:\\install\\python27\\lib\\site-packages\\html5lib-0.95-py2.7.egg',
 'D:\\install\\python27\\lib\\site-packages\\pypdf-1.13-py2.7.egg',
 'D:\\install\\PyCharm 2.0.2\\helpers',
 'D:\\~Sasha\\Portman',
 'D:\\~Sasha',
 'C:\\Windows\\system32\\python27.zip',
 'D:\\install\\python27\\DLLs',
 'D:\\install\\python27\\lib',
 'D:\\install\\python27\\lib\\plat-win',
 'D:\\install\\python27\\lib\\lib-tk',
 'D:\\install\\python27',
 'D:\\install\\python27\\lib\\site-packages',
 'D:\\install\\python27\\lib\\site-packages\\PIL']

PILは、PILのウェブサイトからプリコンパイルされたバンドルを介してインストールされ、_imagingをインポートすると、このような出力が得られました。

Python 2.7.1 (r271:86832, Feb  7 2011, 11:33:02) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import _imaging
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: DLL load failed: %1 is not a valid Win32 application.

python x64がこの問題を引き起こしているのでしょうか?

Python 2.7.1 (r271:86832, Feb  7 2011, 11:33:02) [MSC v.1500 64 bit (AMD64)] on win32

PILのx64用ビルド済みパッケージを入手し、既存のバンドルの上にインストールしたところ、コンソールからのインポートが動作するようになりました。

>>> import _imaging
import _imaging # dynamically loaded from D:\install\python27\lib\site-packages\PIL\_imaging.pyd

しかし、pdfファイルを生成しようとすると、同じエラーが発生します。

どうすればいいですか?

はい、これは間違いなく(そしておそらく)x64の問題によって引き起こされる可能性があります。Python x64を実行している場合、ネイティブDLLを含むモジュールはx64用にコンパイルされたバージョンでインストールする必要があります。

編集:PILのサイトでは、実際のx64用プリコンパイル版は見当たりませんが こちら は、もしあなたが自分でコンパイルすることに興味があるなら、出発点となるものです。