我试图运行带有PIL库& jpeg支持的Google App Engine,以便使用GAE中的图像模块。无法在OSX上获得对PIL的JPEG支持
这是我迄今所做的:
我下载的压缩包为
PIL 1.1.7
和提取,并与python setup.py install
安装它。但是我注意到输出表示没有可用的jpeg支持。所以我戳穿了README
,并得知我需要安装libjpeg。然后我下载
jpeg-7
的源代码并构建它。我在运行make
和make install
之前配置了以下标志:configure --enable-shared --enable static
。我最初配置&没有这些标志建成,但我发现许多消息来源声称它需要做到让PIL识别OSX上的libjpeg,所以我跑了make clean
和make distclean
并重新配置了标志并重建。然后我试着重新安装PIL。我导航到了我已经提取PIL源代码的目录。在setup.py中,我将行
JPEG_ROOT
更改为指向/usr/local/bin
(其中已安装了jpeg,但看到PIL需要这些库,而不是我后来重复步骤3的二进制文件,但是/usr/local/lib
和libinclude('/usr/local')
作为最终尝试)并运行python setup.py clean
,python setup.py build
和python setup.py install
。这似乎工作正常。输出声称有JPEG支持。但是,当我启动GAE时,PIL工作正常,但我无法获得jpeg支持。从PIL安装脚本的输出是在这里:
-
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的未编译头文件,因为setup.py
中的注释要求lib
和includes
目录。我简直无法弄清楚为什么PIL不能用JPEG支持构建。我尝试了所有可以在互联网上找到的东西。从源代码构建时,我似乎经常遇到这种问题。我将不胜感激任何和所有的建议(甚至是关于如何从存储库安装PIL的建议或简单的东西 - 我厌倦了试图从源代码构建软件,并结束了我的机器上大量的无法编译的目录好东西)。
'import PIL的输出是什么; PIL .__ FILE__“?是否与您使用jpeg支持安装PIL的地方相同? – 2013-03-19 06:03:46
另外,你有没有考虑过使用macports,它可以让你调用'sudo port install py27-pil'?但这不是一个直接的解决方案。 – 2013-03-19 06:08:05
隆 - 是的,他们是一样的。在交互式Python会话中运行'import PIL'工作得很好(当然除了jpeg支持)。我已经考虑过使用Macports,尽管我确实设法让所有的东西都能正常工作(请参阅下面我自己的答案)。我认为这些日子里有一个我需要构建的所有这些软件,我不妨将其吸收并安装MacPorts。 – jayhendren 2013-03-19 06:14:20