python-imaging-library – Django OS X错误的JPEG库版本:库是8
我在我的Mac上使用本地
django的sorl.thumbnail并且一直遇到PIL问题,但今天我终于设法安装了它 – 与libjpeg有些麻烦.
我现在可以上传和使用图像 – 但是我无法使用sorl.thumbnail调整它们的大小. 当我尝试我得到以下错误: Wrong JPEG library version: library is 80,caller expects 62 有谁知道一个很好的解决方案. 我不知道无论sorl使用什么都需要早期版本的libjpeg或者还有一些幽灵安装的东西仍然留在我的所有尝试用各种方法. 我有 : > PIL 1.1.7 有谁知道一种方法? 解决方法
为了未来遇到这个错误并且不知道原因的人们的利益,我想发表我的发现.我希望能够大致了解出现了什么问题,因为修复它的确切命令在您的计算机上可能与我的OSX Lion安装上的不同.
首先,因为很容易迷失在潜在的解决方案中,所以当它说错误的JPEG库版本时,理解错误消息是正确的是很重要的:库是80,调用者期望62或62,70和80的其他组合.这些数字对应于libjpeg的不同不兼容版本.这里有两个移动部件,动态加载的jpeg库和PIL(或Pillow)安装.错误消息的含义是您的PIL安装是使用libjpeg 6.2版的头文件编译的,但是当它加载实际的共享库时,它将被链接到8.0版. 修复是download,构建并安装你想要的libjpeg版本(任何人都会这样做,尽管后来的版本在OSX Lion上更容易构建): wget http://www.ijg.org/files/jpegsrc.v8d.tar.gz tar xzf jpegsrc* cd jpeg-* ./configure make sudo make install 这应该删除’/usr/local /’中的2个注释文件.即/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以确保库始终与我正在测试的当前路径新链接. 对不起,这是一个漫无边际的答案,但尝试过其他每一个副本都非常令人沮丧.粘贴解决方案,没有任何工作.希望这个答案至少让一些人浪费大量时间寻找简单的解决方案. 祝好运! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |