为了未来的人们遇到这个错误,不知道为什么,我想发布我的发现。我希望大致了解发生了什么问题,因为修复它的确切命令在您的计算机上可能会不同于我的OSX Lion安装。
首先,因为它很容易迷失在可能的解决方案,了解该错误信息是正确的,当它说:Wrong JPEG library version: library is 80, caller expects 62
或62
其他一些组合,70
,并80
是非常重要的。这些数字对应于libjpeg的不兼容版本。这里有两个移动块,动态加载的jpeg库和PIL(或Pillow)安装。错误信息的意思是你的PIL安装是用libjpeg6.2的头文件编译的,但是当它加载实际的共享库时,它被链接到版本8.0。
解决方法是download,建造和安装所需的libjpeg的版本(任何会做,但后来的版本上OSX狮子打造更容易):
wget http://www.ijg.org/files/jpegsrc.v8d.tar.gz
tar xzf jpegsrc*
cd jpeg-*
./configure
make
sudo make install
这应该放弃注2个文件'在/ usr /本地/'。即/usr/local/lib/libjpeg.8.dylib
和/usr/local/include/jpeglib.h
。现在我们只需要让PIL(或Pillow)在安装时使用这两个文件,而且我们是免费的。我知道有一个更好的方法可以做到这一点,但黑客(如PIL文档所建议的)是在安装之前编辑PIL分配的setup.py
文件。您可能会在setup.py
的顶部附近设置JPEG_ROOT = libinclude('/usr/local')
,但在文件的其他位置可能需要进一步的目录操作。
当你摆弄这些路径时,你必须确保PIL在测试它是否连接到正确的库之前完成重建。我使用了一个像rm -rf build && python setup.py install
这样的命令来确保库总是与我正在测试的当前路径刚刚链接。
对不起,这是一个漫无边际的答案,但它是非常令人沮丧的尝试了所有其他副本&粘贴解决方案,并没有他们的工作。希望这个答案能够让至少几个人在浪费大量时间寻找简单的解决方案。
祝你好运!
感谢您的答复 - 我明白了 - 没有真正的想法我做了什么,但现在它的工作......有点。虽然我很乐意将此标记为一个很好的答案,但我不会尝试使用我的*完美*安装的风险 - 但再次感谢! - 也许它会帮助别人 – niklasdstrom