为了利用GAE中的图像模块,我尝试使用PIL库& jpeg支持运行。
以下是我迄今所做的工作:
PIL 1.1.7的tarball,并将其解压缩并与python setup.py install一起安装。但是,我注意到输出中没有jpeg支持。因此,我浏览了一下README并了解到我需要安装libjpeg。jpeg-7的源代码并构建了它。在运行make和make install之前,我使用以下标志进行了配置:configure --enable-shared --enable static。我最初是在没有这些标志的情况下配置和构建的,但我发现了许多消息来源,声称需要让PIL在OSX上识别libjpeg,所以我运行了make clean和make distclean,并重新配置了这些标志并进行了重建。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的建议,或者是一些简单的建议--我厌倦了尝试从源代码构建软件,结果在我的机器上产生了巨大的目录混乱,这些目录无法编译成很好的东西)。
发布于 2013-03-19 06:12:12
我设法弄明白了。我觉得有点尴尬,但希望这将是一个参考任何人在未来这样做。
结果是,当我运行python setup.py build (或者没有先构建的setup.py install,如果它还没有运行的话,它似乎会调用构建脚本),它不会覆盖已经存在的构建,setup.py clean也没有删除它们(虽然我天真地假设脚本已经删除了)。我只是简单地rm -rf * build/文件夹中的所有东西,这迫使PIL重新开始构建。最后,PIL听取了我的意见,并将我所做的更改应用到了JPEG_ROOT上,它毕竟起了作用。
https://stackoverflow.com/questions/15492420
复制相似问题