0

所以我的 Mac 正确设置了 _imaging 但是只要我用 mkvirtualenv myproject 创建一个新的 virtualenv 并运行 python 解释器

import _imaging
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: dlopen(/Library/Python/2.7/site-packages/PIL/_imaging.so, 2): Symbol not found: _jpeg_resync_to_restart
  Referenced from: /Library/Python/2.7/site-packages/PIL/_imaging.so
  Expected in: flat namespace
 in /Library/Python/2.7/site-packages/PIL/_imaging.so

我得到以下。

是否有快速修复将我的映像库添加到 virtualenv 的方法?

4

4 回答 4

1

不要相信前面的评论,Macports Python + PIL 工作得很好:)

根据错误消息,您可能以某种方式将 OSX 自己的 Python 和库与 Macports 的库(错误版本)混合在一起。

  • 使用 Macports Python 安装 virtualenv,而不是 OSX Python(命令行开关强制解释器)

  • 将本机依赖库安装到 Macports(列表在哪里......我已经有了)

  • easy_install PIL - 这应该编译 PIL 并在编译后打印状态报告(JPEG:OK,PNG:OK 等)

...或者您可以将 PIL 符号链接到您的 virtualenv ...:

http://blog.mfabrik.com/2009/11/19/installing-python-imaging-library-pil-under-virtualenv-or-buildout/

于 2011-08-05T22:47:07.717 回答
1

您需要从源代码安装它,请参阅此 google文章。不要使用 Mac 端口,因为那样会很疯狂。

于 2011-08-05T20:25:46.323 回答
1

当我指定 python 版本并确保 virtualenv 是自给自足的——没有使用站点包时,我一直很开心。

将此添加到您的 .bashrc 中:

export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages --python=python2.6'
source /usr/local/bin/virtualenvwrapper.sh
于 2011-08-05T23:45:15.917 回答
0

所以自从我从 10.6 升级到 10.7 后出现了一些问题,我花了几天时间来解决这个问题。

我现在随后将我的 python 重新编译为 64 位,MySQL 重新编译为 64 位,并拥有一个功能齐全的 PIL,_imaging 甚至可以使用 virtualenv。

删除了我以前安装的所有 XCode。

下载64位版本的Python2.7.2并安装

以 64 位重新编译 libjpeg

首先是最新版本的 libjpeg,我的是 8c 版

sudo make clean
sudo CC="-arch x86_64" ./configure --enabled-static --enable-shared
make
sudo make install

然后得到 Imaging-1.1.6

解压并 cd 进入

vi setup.py
JPEG_ROOT="/usr/local/lib"
sudo python setup.py install

并测试

那么你应该能够使用 mkvirtualenv testenv 制作你的 virtualenv 并执行sudo pip install http://effbot.org/downloads/Imaging-1.1.6.tar.gz

于 2011-08-09T13:02:12.607 回答