0

GAE で画像モジュールを利用するために、PIL ライブラリと jpeg サポートを使用して Google App Engine を実行しようとしています。

これが私がこれまでに行ったことです:

  1. の tarball をダウンロードしてPIL 1.1.7解凍し、 でインストールしましたpython setup.py install。ただし、出力で jpeg サポートが利用できないと表示されていることに気付きました。そこで私は、READMElibjpeg をインストールする必要があることを知りました。

  2. それで、ソースをダウンロードしてjpeg-7ビルドしました。makeandを実行する前に、make install次のフラグを設定しましたconfigure --enable-shared --enable static。私はもともとこれらのフラグなしで構成およびビルドしましたが、PIL が OSX で libjpeg を認識するようにする必要があると主張する多くのソースを見つけたので、フラグを使用して実行make cleanmake distclean、再構成して再ビルドしました。

  3. 次に、PIL を再インストールしようとしました。PIL のソース コードを抽出したディレクトリに移動しました。setup.py で、行を変更しJPEG_ROOT/usr/local/bin(jpeg がインストールされていた場所ですが、PIL がバイナリではなくライブラリを必要としていることがわかりました。後で手順 3 を繰り返しましたが、最後の試みとして と を使用しました)、 、 、および を実行/usr/local/libしました。これはうまくいくように見えました。出力は、jpeg サポートがあると主張しました。しかし、GAE を起動すると、PIL は正常に動作しましたが、jpeg のサポートが得られませんでした。PIL インストール スクリプトからの出力は次のとおりです。libinclude('/usr/local')python setup.py cleanpython setup.py buildpython setup.py install

--

Jays-MacBook-Air:Imaging-1.1.7 jay$ python setup.py install
running install
running build
running build_py
running build_ext
gcc-4.2 not found, using clang instead
--- using frameworks at /System/Library/Frameworks
--------------------------------------------------------------------
PIL 1.1.7 SETUP SUMMARY
--------------------------------------------------------------------
version       1.1.7
platform      darwin 2.7.3 (v2.7.3:70274d53c1dd, Apr  9 2012, 20:52:43)
              [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]
--------------------------------------------------------------------
--- TKINTER support available
--- 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.
running build_scripts
running install_lib
running install_scripts
changing mode of /Library/Frameworks/Python.framework/Versions/2.7/bin/pilconvert.py to 755
changing mode of /Library/Frameworks/Python.framework/Versions/2.7/bin/pildriver.py to 755
changing mode of /Library/Frameworks/Python.framework/Versions/2.7/bin/pilfile.py to 755
changing mode of /Library/Frameworks/Python.framework/Versions/2.7/bin/pilfont.py to 755
changing mode of /Library/Frameworks/Python.framework/Versions/2.7/bin/pilprint.py to 755
running install_egg_info
Removing /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/PIL/PIL-1.1.7-py2.7.egg-info
Writing /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/PIL/PIL-1.1.7-py2.7.egg-info
creating /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/PIL.pth

しかし、GAE は jpeg をサポートしていないと主張しており、実行するたびにpython selftest.py次の出力が得られました。

Jays-MacBook-Air:Imaging-1.1.7 jay$ python selftest.py
--------------------------------------------------------------------
PIL 1.1.7 TEST SUMMARY 
--------------------------------------------------------------------
Python modules loaded from ./PIL
Binary modules loaded from ./PIL
--------------------------------------------------------------------
--- PIL CORE support ok
--- TKINTER support ok
*** JPEG support not installed
--- ZLIB (PNG/ZIP) support ok
*** FREETYPE2 support not installed
*** LITTLECMS support not installed
--------------------------------------------------------------------
Running selftest:
*****************************************************************
Failure in example:
try:
 _info(Image.open(os.path.join(ROOT, "Images/lena.jpg")))
except IOError, v:
 print v
from line #24 of selftest.testimage
Expected: ('JPEG', 'RGB', (128, 128))
Got: decoder jpeg not available
1 items had failures:
   1 of  57 in selftest.testimage
***Test Failed*** 1 failures.
*** 1 tests of 57 failed.

私はここで途方に暮れています。考えられることはすべて試しました。のコメントがおよびディレクトリを要求しているためsetup.py、jpeg-7 のコンパイルされていないヘッダー ファイルを直接指定しようとさえしました。PIL が JPEG サポートでビルドされない理由がわかりません。インターネットで見つけられるものはすべて試しました。ソースからビルドするときに、この種の問題に頻繁に遭遇するようです。ありとあらゆる提案をいただければ幸いです (リポジトリから PIL をインストールする方法や簡単なものについての提案も含まれます。ソースからソフトウェアをビルドしようとして、自分のマシンにコンパイルされない巨大なディレクトリが散らかってしまうことにうんざりしています)。何かいいもの)。setup.pylibincludes

4

1 に答える 1

3

私はこれを理解することができました。ちょっと恥ずかしい気もしますが、今後このようなことをする方の参考になれば幸いです。

私が実行したときpython setup.py build(またはsetup.py install最初にビルドせずに、まだ実行されていない場合はビルドスクリプトを呼び出すようです)、すでに存在するビルドを上書きsetup.py cleanせず、これらも削除しなかったことがわかりました(私は単純に、スクリプトがそうであると仮定しました)。私は単純rm -rf *に PIL フォルダー内のすべてを 'd' にしたため、PILbuild/は新たにビルドを開始する必要がありました。最後に、PIL は私の話を聞いて、私が行った変更を に適用しましたJPEG_ROOT

于 2013-03-19T06:12:12.950 に答える