私は開発に比較的慣れておらず、Django (Windows 7、64 ビット) で構築しているアプリケーションをセットアップして、ImageField 経由で画像のアップロードを受け入れようとしています。最初に PIL をインストールしましたが、最初に JPEG および PNG ライブラリが必要であることがわかりました。そこで、「pip uninstall pil」を使用して PIL をアンインストールし、ライブラリを C:\zlib-1.2.7\zlib.lib および C:\jpeg-8d\libjpeg.lib にセットアップしました。その後、PIL の setup.py に移動し、次のように変更しました。
JPEG_ROOT = "C:/jpeg-8d"
ZLIB_ROOT = "C:/zlib-1.2.7"
次に、次の方法でインストールします。
pip install C:\Imaging-1.1.7\
インストールの最後に次の結果が得られました。これは、JPEG と PNG のサポートがあることを示唆しています。
Installing collected packages: PIL
Running setup.py install for PIL
WARNING: '' not a valid package name; please use only.-separated package nam
es in setup.py
--------------------------------------------------------------------
PIL 1.1.7 SETUP SUMMARY
--------------------------------------------------------------------
version 1.1.7
platform win32 2.6.6 (r266:84297, Aug 24 2010, 18:46:32)
[MSC v.1500 32 bit (Intel)]
--------------------------------------------------------------------
*** TKINTER support not available (Tcl/Tk 8.5 libraries needed)
--- JPEG support available
--- ZLIB (PNG/ZIP) support available
*** FREETYPE2 support not available
*** LITTLECMS support not available
--------------------------------------------------------------------
To add a missing option, make sure you have the required
library, and set the corresponding ROOT variable in the
setup.py script.
To check the build, run the selftest.py script.
Successfully installed PIL
Cleaning up...
ただし、selftest.pyでテストすると、サポートがないことを示唆する次の結果が得られました。
C:\Windows\system32>python C:\Imaging-1.1.7\selftest.py
--------------------------------------------------------------------
PIL 1.1.7 TEST SUMMARY
--------------------------------------------------------------------
Python modules loaded from C:\Users\ayan\Desktop\Imaging-1.1.7\PIL
Binary modules loaded from C:\Python26_x86\lib\site-packages\PIL
--------------------------------------------------------------------
*** PIL CORE support not installed
*** TKINTER support not installed
*** JPEG support not installed
*** ZLIB (PNG/ZIP) support not installed
*** FREETYPE2 support not installed
*** LITTLECMS support not installed
--------------------------------------------------------------------
また、JPEG を操作しようとしたところ、次の IOError が発生しました。
C:\Users\Public\Pictures\Sample Pictures>python
Python 2.6.6 (r266:84297, Aug 24 2010, 18:46:32) [MSC v.1500 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import PIL
>>> import os, sys
>>> import Image
>>> img = Image.open(Desert.jpg)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'Desert' is not defined
>>> img = Image.open("Desert.jpg")
>>> img.save("Desert_test.jpg")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python26_x86\lib\site-packages\PIL\Image.py", line 1406, in save
self.load()
File "C:\Python26_x86\lib\site-packages\PIL\ImageFile.py", line 189, in load
d = Image._getdecoder(self.mode, d, a, self.decoderconfig)
File "C:\Python26_x86\lib\site-packages\PIL\Image.py", line 385, in _getdecode
r
raise IOError("decoder %s not available" % decoder_name)
IOError: decoder jpeg not available
これは、 https://stackoverflow.com/questions/10543581/pil-installation-run-issueで報告されたものと多少似ています。ただし、この場合、JPEG は実際には機能していないようです。PNG でも同様の問題が見られます。
プロセスのどこで間違いを犯したのかはっきりしないので、コメントをいただければ幸いです。追加情報が必要な場合はお知らせください。提供できるよう最善を尽くします。
どうもありがとう。