1

私は開発に比較的慣れておらず、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 でも同様の問題が見られます。

プロセスのどこで間違いを犯したのかはっきりしないので、コメントをいただければ幸いです。追加情報が必要な場合はお知らせください。提供できるよう最善を尽くします。

どうもありがとう。

4

1 に答える 1

0

同様のことを解決しましたが、pngサポートのためだけです。jpeg サポートについても同じことができると思います。

まず、PIL のフォークである Pillow を使用することをお勧めします。私が使用した解決策は、自分のマシン (win7 64 ビット) で zlib ライブラリを手動でコンパイルすることです。次に、Pillow Package を手動でコンパイルします。コンパイルしたばかりのzlibを置くディレクトリを指すように、Setup.pyを編集しました。

jpeg lib も手動でコンパイルし、zlib をコンパイルしてから、Pillow を再度コンパイルすることをお勧めします。実行する前に、必ず以前のバージョンの PIL/Pillow をアンインストールしてください。

zlib でそれを行う方法の詳細な回答へのリンクは次のとおりです。

https://stackoverflow.com/a/17190972/2501083

お役に立てれば

于 2013-06-19T15:43:10.793 に答える