2011-08-05 68 views
0

所以我的Mac是否正确设置了_imaging但只要我创建mkvirtualenv MyProject的一个新的virtualenv和运行Python解释器VIRTUALENV virtualenvwrapper和_imaging

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的快速修复?

回答

1

您将需要从源代码安装它,请参阅google article。不要使用Mac端口,因为这种方式是疯狂的。

1

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

基于你可能以某种方式混合OSX自己的Python和库MacPorts的那些(错误的版本)的错误信息。

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

  • 安装本地的依赖库到MacPorts的(其中的列表...我有它)

    编译

后.. -

  • 的easy_install PIL这应该编译PIL和打印状态报告(OK等JPEG:OK,PNG)或者你可以PIL符号链接到您的virtualenv ...:

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

  • 1

    当我指定的Python版本,并确保该的virtualenv是自给自足的我一直最幸福的 - 没有使用站点包。

    添加到您的.bashrc:

    export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages --python=python2.6' 
    source /usr/local/bin/virtualenvwrapper.sh 
    
    0

    因此就出现了一个有点问题的,因为我是从10.6升级到10.7和我花了几天时间排序了这一点。

    我现在已经随后将我的python重新编译为64位,64位的MySQL,并且具有全功能的PIL,即使使用virtualenv,_imaging也可以工作。

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

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

    在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 
    

    和测试

    ,那么你应该能够让你的virtualenv与mkvirtualenv testenv做sudo pip install http://effbot.org/downloads/Imaging-1.1.6.tar.gz

    相关问题