PIL错误:未安装_imaging C模块

时间:2010-06-19 08:34:42

标签: python module python-imaging-library

我安装了PIL(Python成像库)。

当我运行Python时:

import PIL
import Image
import _imaging

我没有错误。但是,在运行我的应用程序时,它会引发

The _imaging C module not installed

6 个答案:

答案 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