首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PIL错误:未安装_imaging C模块

PIL错误:未安装_imaging C模块
EN

Stack Overflow用户
提问于 2010-06-19 16:34:42
回答 6查看 35.4K关注 0票数 16

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

当我运行Python时:

代码语言:javascript
复制
import PIL
import Image
import _imaging

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

代码语言:javascript
复制
The _imaging C module not installed
EN

回答 6

Stack Overflow用户

发布于 2010-06-28 01:32:22

我在你发送的链接上发布了这个回复(谢谢),但我想我也应该在源码上发布。很抱歉给你发了这篇文章。

我希望有一种方法可以做到这一点而不需要重新编译东西。我碰巧使用的是virtualenv。我确实发现,如果我放弃了我的虚拟环境安装,然后用pip重新安装,映像就会重新开始工作。这些步骤似乎起作用了(注意,我使用的是OSX)

不确定这是否重要,但请检查是否安装了jpeg。

代码语言:javascript
复制
winesap:~ $ port installed | grep -i jpeg
  jpeg @7_0
  jpeg @8a_0 (active)

确保我安装了PIP

代码语言:javascript
复制
sudo port -v install py26-pip

删除我拥有的旧虚拟环境并重新创建它

代码语言:javascript
复制
rm -rf ve
virtualenv –no-site-packages –distribute ve
. ./ve/bin/activate

将pil和django安装到虚拟环境中

代码语言:javascript
复制
echo “pil” > requirements.pip
echo “django” >> requirements.pip
pip-2.6 install -E ./ve/ -r requirements.pip

测试以查看导入现在是否有效。注意没有令人讨厌的C模块错误

代码语言:javascript
复制
python
>>import import ImageFont 
>>

希望这是有用的。

票数 3
EN

Stack Overflow用户

发布于 2012-05-23 13:19:03

在Windows上,删除C:\Python27中的_imaging.pyd和_imagingft.pyd。将所有_imaging模块保留在C:\Python27\Lib\site-packages\PIL文件夹中。

这对我很管用。

票数 3
EN

Stack Overflow用户

发布于 2013-11-22 04:42:22

如果from PIL import Image正常工作但import _imaging失败,这里有一些可能会对你有帮助的东西。如果Image也失败了,请参阅末尾的注释。

在Ubuntu 13.04 (raring)上,我遇到了这个问题。事实证明,Ubuntu将_imaging.so安装在App Engine意想不到的地方:/usr/lib/python2.7/dist-packages而不是/usr/lib/python2.7/dist-packages/PIL。所以_imaging.so不在sys.path的任何地方。

这里有几种方法来解决这个问题:

已经将PIL模块放在path上的某个位置:

我注意到/path/to/google_appengine/lib/PIL-1.1.7sys.path中,但该目录在我的安装中不存在。因此,我创建了这个目录,并将.so文件复制到其中,一切都正常。每次更新App Engine SDK时,您都必须再次执行此操作,但至少它不会扰乱您正在开发的代码。

main.py**:** 中操作sys.path

这段代码将检查我们是否正在运行dev appserver,如果是,则将正确的dir添加到路径中。未经测试,但它应该可以工作;)

代码语言:javascript
复制
# 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中。

代码语言:javascript
复制
libraries:
- name: PIL
  version: "latest"

您可能需要在添加此库后重新启动dev_appserver.py,以使更改反映在例如交互式控制台中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3074915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档