在Snow Leopard上安装Python 2.6.5的PIL问题

3 投票
2 回答
794 浏览
提问于 2025-04-16 00:21

我快要崩溃了。我安装了一个可以用的 Python 2.6.5,里面有 numpy 和 scipy。我想用它来做一些简单的主成分分析(PCA),这需要导入图片。我觉得用 PIL(Python Imaging Library)是个不错的选择。于是,我按照一个指南下载并安装了 libjpeg6-b。接着,我执行了以下命令:

tar zxvf jpegsrc.v6b.tar.gz
cd jpeg-6b
cp /usr/share/libtool/config/config.sub .
cp /usr/share/libtool/config/config.guess .
./configure --enable-shared --enable-static
make

我切换到下载 PIL 1.1.7 的目录,然后做了以下操作:

tar zxvf Imaging-1.1.7.tar.gz
cd Imaging-1.1.7
(edit the setup.py file to find libjpeg)
python setup.py build
python setup.py install

然后我尝试导入 _imaging,但出现了著名的 ImportError 错误,提示信息是:dlopen(/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/PIL-1.1.7-py2.6-macosx-10.3-fat.egg/_imaging.so, 2): 找不到符号: _jpeg_resync_to_restart 引用自: /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/PIL-1.1.7-py2.6-macosx-10.3-fat.egg/_imaging.so 在: 动态查找错误。

我尝试了网上大多数的解决方案,但都没有成功。我在将我的架构限制为 i386 后,运行了 otool 命令查看我的 _imaging.so,结果是:

Thomas$ otool -L /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/PIL/_imaging.so
/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/PIL/_imaging.so:

/usr/lib/libSystem.B.dylib (兼容版本 1.0.0,当前版本 125.2.0)

此外,当我运行 pip 时,得到了这个输出:

    --------------------------------------------------------------------
PIL 1.1.6 BUILD SUMMARY
--------------------------------------------------------------------
version       1.1.6
platform      darwin 2.6.5 (r265:79359, Mar 24 2010, 01:32:55)
              [GCC 4.0.1 (Apple Inc. build 5493)]
--------------------------------------------------------------------
--- TKINTER support ok
--- JPEG support ok
--- ZLIB (PNG/ZIP) support ok
--- FREETYPE2 support ok
--------------------------------------------------------------------
To check the build, run the selftest.py script.

关于 PIL 1.1.6 的。

我还尝试切换到 gcc 4.0,并重新编译了 libjpeg 和 PIL。

如果能得到任何帮助,我将非常感激。如果你需要更多信息,请随时问我。

2 个回答

1

你知道Macports(或者Fink)吗?安装软件和程序包最简单的方法就是用Macports。或者你也可以看看Macports的Portfiles,了解他们是怎么编译那些库的。

0

你也可以用pip来安装图像处理库。

可以先用easy_install来安装pip。

easy_install pip
pip install http://effbot.org/downloads/Imaging-1.1.6.tar.gz

如果这样还是不行,我写了一篇文章,讲的是如何让PIL、libjpeg和_imaging在Python 2.6和Snow Leopard系统上运行。

http://appelfreelance.com/2010/06/libjpeg-pil-snow-leopard-python2-6-_jpeg_resync_to_restart/

撰写回答