The problem with installing PIL using virtualenv or buildout
当我使用easy_install或buildout安装PIL时,它会以这种方式安装,我必须执行'import Image',而不是'来自PIL import Image'。
但是,如果我做"apt-get install python-imaging"或使用"pip -E test_pil install PIL",一切正常。
以下是我尝试使用virtualenv安装PIL的示例:
1 2 3 4 5 6 7 8 9 10 | # virtualenv --no-site-packages test_pil # test_pil/bin/easy_install PIL # test_pil/bin/python Python 2.5.1 (r251:54863, Feb 6 2009, 19:02:12) [GCC 4.0.1 (Apple Inc. build 5465)] on darwin Type"help","copyright","credits" or"license" for more information. >>> import PIL Traceback (most recent call last): File"<stdin>", line 1, in <module> ImportError: No module named PIL |
我明白了,easy_install将PIL打包到Egg中,而PIP则没有。 与buildbot相同,它使用鸡蛋。
如何使用easy_install或buildout正确安装PIL?
在pypi上打包的PIL版本(作者)与setuptools不兼容,因此不易easy_installable。人们在其他地方创建了easy_installable版本。目前,您需要指定查找链接URL并使用
1 | pip install --no-index -f http://dist.plone.org/thirdparty/ -U PIL |
通过将
1 | easy_install http://dist.plone.org/thirdparty/PIL-1.1.7.tar.gz |
要在构建中包含PIL,请使用相同的版本引脚指定egg或使用版本部分:
1 2 3 4 5 6 7 8 9 10 | [buildout] parts = find-links = http://dist.plone.org/thirdparty/ eggs = PIL versions = versions [versions] PIL = 1.1.7 |
编辑2011年3月:解决包装问题的修复程序现已合并到PIL的开发树中,因此这种解决方法可能很快就会过时。
编辑2013年2月:只需使用Pillow并完成它。 :-)显然等待修复原始包裹还没有得到回报。
使用枕头:"友好"的PIL叉:-)它提供:
- 完整的setuptools兼容性
- 更快的发布周期
- 没有与PIL不同的图像代码更改(即,它旨在跟踪所有PIL图像代码更改,并且在不向上游报告它们的情况下不进行任何自己的更改。)
- Windows二进制文件
如果PIL完全像Pillow那样做,那么叉就会死掉。在那之前,我们有枕头。
免责声明:我是fork作者,Pillow的创建主要是为了让我的工作变得更轻松(虽然很高兴看到其他人也使用它)。
编辑:Pillow 2.0.0于2013年3月15日发布。它提供Python 3支持和许多错误修复/增强功能。虽然我们仍然试图跟踪上游PIL的变化,(不幸或幸运的是取决于你如何看待它)枕头已经开始偏离PIL。
对于Ubuntu,我发现我需要为我的python版本安装C头文件包(2.7)
之后,
在Windows上,我在一个virtualenv中安装了PIL,如下所示:
通过执行.exe来在您的全局python站点包中安装PIL:
http://www.pythonware.com/products/pil/
然后,作为"自己动手",将C: Python25 Lib site-packages中的PIL.pth文件和PIL目录复制到virtualenv site-packages目录。是的,python仍然是一个"弄脏手"的环境......