我安装了PIL(Python成像库)。
当我运行Python时:
import PIL
import Image
import _imaging
我没有错误。但是,在运行我的应用程序时,它会引发
The _imaging C module not installed
答案 0 :(得分:3)
我在你发送的链接上发布了这个回复(谢谢你),但我想也会在源代码上发帖。对不起该死的帖子。
我希望有一种方法可以在不重新编译的情况下执行此操作。我碰巧使用virtualenv。我确实发现如果我吹掉我的虚拟环境安装,然后用pip重新安装,则映像开始再次运行。这些步骤似乎有效(注意,我正在使用OSX)
不确定这是否重要,但检查是否已安装jpeg
winesap:~ $ port installed | grep -i jpeg
jpeg @7_0
jpeg @8a_0 (active)
确保我已安装PIP
sudo port -v install py26-pip
删除我拥有的旧虚拟环境并重新创建
rm -rf ve
virtualenv –no-site-packages –distribute ve
. ./ve/bin/activate
将pil和django安装到virtualenv
echo “pil” > requirements.pip
echo “django” >> requirements.pip
pip-2.6 install -E ./ve/ -r requirements.pip
测试导入是否现在有效。注意缺乏令人讨厌的C模块错误
python
>>import import ImageFont
>>
希望这很有用。
答案 1 :(得分:3)
在Windows上,删除C:\ Python27中的_imaging.pyd和_imagingft.pyd。 将所有_imaging模块保留在C:\ Python27 \ Lib \ site-packages \ PIL文件夹中。
它对我有用。
答案 2 :(得分:2)
如果from PIL import Image
有效但import _imaging
失败,可能会对您有所帮助。如果Image
也失败,请参阅最后的注意。
在Ubuntu 13.04(raring)上,我遇到了这个问题。事实证明,Ubuntu会在App Engine不期望的地方安装_imaging.so
:/usr/lib/python2.7/dist-packages
而不是/usr/lib/python2.7/dist-packages/PIL
。因此,_imaging.so
中的sys.path
不在任何地方。
以下是一些解决方法:
将PIL C模块放在路径上的某处:
我注意到/path/to/google_appengine/lib/PIL-1.1.7
位于sys.path
,但我的安装中不存在该目录。所以我创建了目录并将.so文件复制到其中,一切正常。每次更新App Engine SDK时,您都必须再次执行此操作,但至少它不会影响您正在开发的代码。
在main.py
中操纵sys.path:
此代码将检查我们是否正在运行dev appserver,如果是,请将正确的dir添加到路径中。未经测试但它应该工作;)
# Find _imaging.so and put its directory here.
# `locate _imaging.so` or `dpkg -L python-imaging`
PIL_PATH = '/usr/lib/pyshared/python2.7/'
PRODUCTION_MODE = not os.environ.get(
'SERVER_SOFTWARE', 'Development').startswith('Development')
if not PRODUCTION_MODE:
sys.path.insert(PIL_PATH)
我认为这可能不仅仅是您可以使用的PIL模块,因此会在开发和生产之间引入(更多)差异。此外,这种技术涉及修改你的应用程序的源代码,如果不止一个人开发它,这似乎是一个糟糕的电话。
注意:如果import Image
失败,您可能忘记将PIL库添加到app.yaml
。
libraries:
- name: PIL
version: "latest"
您可能需要在添加此库后重新启动dev_appserver.py
,以便将更改反映在例如交互式控制台。
答案 3 :(得分:0)
问题存在的原因是PIL 1.1.6? (仅1.1.7), 这是1.1.6版本不使用这些库吗?
PIL 1.1.6还使用其内部C库来加快速度。
对于Windows,您应该使用预编译的软件包。 http://www.pythonware.com/products/pil/提供X86 Windows二进制文件 1.1.7。您可能会遇到1.1.7 Windows二进制文件的问题。该 freetype C库引用了一个根本不可用的调试CRT 机器。您可以使用十六进制编辑器轻松修补_imagingft.pyd文件。
答案 4 :(得分:0)
我完全错过了_imaging.*
文件夹中的lib/site-packages/PIL
个文件。
我从这里下载了鸡蛋(正确的文件取决于平台):
https://pypi.python.org/pypi/Pillow/2.7.0
将其从.egg重命名为.zip and copied all the files in the folder
PIL that start with
_ imaging to the folder
lib / site-packages / PIL`。
..问题解决了
答案 5 :(得分:-1)
在Ubuntu上,以下命令帮助了我(感谢this answer on askubuntu):
sudo apt-get install libjpeg62:i386