错误的JPEG库版本:库是80,调用者期望的是62



我用的是sorl。在我的mac上本地安装django的缩略图,并且一直遇到PIL的麻烦,但今天我终于设法安装了它-是libjpeg的一些麻烦。

我现在可以上传和使用图像-但我不能使用sorl.thumbnail调整它们的大小。

当我尝试我得到以下错误:

Wrong JPEG library version: library is 80, caller expects 62

有谁知道一个好的解决方案吗?

我不知道sorl使用的是需要较早版本的libjpeg,还是我用各种方法尝试后留下的一些东西的幽灵安装。

我有:

    pil 1.1.7
  1. libjpeg 8。

有人知道方法吗?

为了将来遇到这个错误而不知道为什么的人的利益,我想发布我的发现。我希望能给大家一个大概的了解是什么出了问题,因为修复它的确切命令可能在你的机器上与我的OSX Lion安装上不同。

首先,由于很容易迷失在潜在的解决方案中,所以当错误消息显示Wrong JPEG library version: library is 80, caller expects 6262, 7080的其他组合时,理解错误消息是正确的是很重要的。这些数字对应于libjpeg的不同不兼容版本。这里有两个移动的部分,动态加载的jpeg库和PIL(或Pillow)安装。错误消息是说您的PIL安装是用libjpeg 6.2版本的头文件编译的,但是当它加载实际的共享库时,它被链接到8.0版本。

修复方法是下载、构建并安装您想要的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)在安装时使用这两个文件,然后我们就可以回家了。我知道有更好的方法来做到这一点,但是hack(根据PIL文档的建议)是在安装PIL发行版之前编辑它的setup.py文件。您可以将JPEG_ROOT = libinclude('/usr/local')设置在setup.py的顶部附近,尽管可能需要在文件的其他地方进行进一步的目录操作。

当您摆弄路径时,您必须确保PIL在测试它是否链接到正确的库之前进行完整的重新构建。我使用像rm -rf build && python setup.py install这样的命令来确保库总是新鲜地链接到我正在测试的当前路径。

我很抱歉这是一个杂乱无章的回答,但它是非常令人沮丧的尝试了所有其他副本& &;粘贴解决方案,没有一个工作。希望这个答案至少能让一些人避免浪费大量的时间去寻找一个简单的解决方案。

祝你好运!

如果您已经安装了macports,您应该执行a:

$ sudo port selfupdate
$ sudo port install py27-pil

它比easy_install方法更简单,因为macports安装正确的依赖项。

我遇到了一个与OP略有不同的问题,但我想在这里分享我的解决方案,以帮助将来的人。

OS: OSX El Capitan我从他们网站上预编译的二进制文件中安装了libjpeg-turbo。然而,我不知道我已经在我的mac上安装了一个不同版本的libjpeg。我正在构建我的c文件,如gcc myfile.c -o myfile.out -L /opt/libjpeg-turbo/lib -ljpeg。这从正确的位置获得了库,但是链接器从预安装位置获得了包含的头文件jpeglib.h。我把我的构建命令改为:gcc myfile.c -o myfile.out -I/opt/libjpeg-turbo/include/ -L /opt/libjpeg-turbo/lib -ljpeg,它工作了。没有更多的图书馆是80,来电者期望是62!

就像之前的答案一样,我的问题与OP略有不同,但我想在这里分享我的解决方案,以帮助将来的人。

唯一对我有效的是在安装所需库的dev版本后强迫pip从源代码构建pillow(我的代码是编辑jpg并使用自定义字体添加标签)。这是在基于ARM的嵌入式设备上运行Ubuntu Linux,使用Python 3.7.3

apt-get install -y libjpeg-dev libfreetype6-dev
pip3 install pillow --global-option="build_ext" --global-option="--enable-jpeg" --global-option="--enable-freetype" 

最新更新