gpt4 book ai didi

python-imaging-library - Django OS X 错误的 JPEG 库版本 : library is 80, 调用者期望 62 sorl.thumbnail

转载 作者:行者123 更新时间:2023-12-01 10:08:53 25 4
gpt4 key购买 nike

我在我的 Mac 上本地使用 sorl.thumbnail for django 并且一直在使用 PIL 时遇到问题,但今天我终于设法安装了它 - libjpeg 出现了一些问题。

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

当我尝试时出现以下错误:

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

有没有人知道一个好的解决方案。

我不知道 sorl 使用的任何东西是否需要较早版本的 libjpeg,或者是否有一些幽灵安装的东西在我使用各种方法的所有尝试中仍然遗留下来。

我有:

  1. PIL 1.1.7
  2. libjpeg 8.

有人知道一种方法吗?

最佳答案

为了 future 遇到此错误且不知道原因的人们的利益,我想发布我的发现。我希望对出了什么问题有一个大致的了解,因为修复它的确切命令在您的机器上可能与我安装的 OSX Lion 不同。

首先,由于很容易迷失在潜在的解决方案中,因此了解错误消息是正确的很重要 Wrong JPEG library version: library is 80, caller expects 62 或一些627080 的其他组合。这些数字对应于 libjpeg 的不同不兼容版本。这里有两个移动部分,动态加载的 jpeg 库和 PIL(或 Pillow)安装。错误消息是说您的 PIL 安装是使用 libjpeg 6.2 版的 header 编译的,但是当它加载实际的共享库时,它被链接到 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 的命令来确保库始终最新链接到我正在测试的当前路径。

很抱歉,这是一个漫无边际的回答,但是尝试了所有其他的复制和粘贴解决方案却没有任何效果,这让我非常沮丧。希望这个答案至少能让一些人避免浪费大量时间来寻找简单的解决方案。

祝你好运!

关于python-imaging-library - Django OS X 错误的 JPEG 库版本 : library is 80, 调用者期望 62 sorl.thumbnail,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7877330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com