3

我在尝试让 selftest.py 成功运行的服务器上遇到困难。

我正在尝试让 PIL 1.1.7 与 Python 2.4.4 一起使用(版本是否兼容?)

像这样执行安装时:

# python2.4 setup.py install
running install
running build
running build_py
running build_ext
--------------------------------------------------------------------
PIL 1.1.7 SETUP SUMMARY
--------------------------------------------------------------------
version       1.1.7
platform      linux2 2.4.6 (#1, Dec 21 2012, 14:54:30)
              [GCC 4.4.6 20120305 (Red Hat 4.4.6-4)]
--------------------------------------------------------------------
*** TKINTER support not available
--- JPEG support available
--- ZLIB (PNG/ZIP) support available
--- FREETYPE2 support available
*** LITTLECMS support not available
--------------------------------------------------------------------
To add a missing option, make sure you have the required
library, and set the corresponding ROOT variable in the
setup.py script.

To check the build, run the selftest.py script.
running build_scripts
running install_lib
running install_scripts
changing mode of /usr/local/bin/pilconvert.py to 755
changing mode of /usr/local/bin/pilprint.py to 755
changing mode of /usr/local/bin/pilfile.py to 755
changing mode of /usr/local/bin/pilfont.py to 755
changing mode of /usr/local/bin/pildriver.py to 755
creating /usr/local/lib/python2.4/site-packages/PIL.pth

一切看起来都很方便,花花公子。Jpeg 支持可用,一切都很高兴。但是 selftest.py 是另一回事:

 # python2.4 /usr/local/src/Imaging-1.1.7/selftest.py
 --------------------------------------------------------------------
 PIL 1.1.7 TEST SUMMARY rc/Imaging-1.1.7]# yum install libjpeg62-devel zlib1g-devel       libfreetype6-devel liblcms1-develp
 --------------------------------------------------------------------
 Python modules loaded from ./PIL
 Binary modules loaded from ./PIL
 --------------------------------------------------------------------
 --- PIL CORE support ok
 *** TKINTER support not installed
 *** JPEG support not installed
 *** ZLIB (PNG/ZIP) support not installed
 --- FREETYPE2 support ok
 *** LITTLECMS support not installed
 --------------------------------------------------------------------
 Running selftest:
 *****************************************************************
 Failure in example:
 try:
  _info(Image.open(os.path.join(ROOT, "Images/lena.jpg")))
 except IOError, v:
  print v
 from line #24 of selftest.testimage
 Expected: ('JPEG', 'RGB', (128, 128))
 Got: decoder jpeg not available
 1 items had failures:
    1 of  57 in selftest.testimage
     ***Test Failed*** 1 failures.
     *** 1 tests of 57 failed.

我得到可怕的 Jpeg 解码器不可用。

我尝试了各种各样的事情。我将设置更改为指向不起作用的 usr/lib64。我在 usr/lib 中创建了一些符号链接以指向 libjpeg.so 文件,但这也不起作用。我在我们的服务器托管地点与技术人员来来回回,他们不理解这个问题,这就像对着墙说话。我真的被困住了。我唯一没有尝试过的是画中画,但我没有尝试过,因为我不知道它是如何工作的。所以我想避免这种情况。

是否存在兼容性问题或我不太正确的设置?

感谢您的帮助。

- 更新 -

这些天再次解决这个问题,我已经测试了 Centos 5 和 6 32 位,一切都像魅力一样安装,但 64 位我仍然遇到问题。

似乎自检适用于股票 python2.6,但不适用于 python2.4。Pil 1.1.7 与 2.4.4 兼容,但我认为 64 位库存在问题。仍在寻找解决方案。

4

3 回答 3

0

经过广泛的测试,这是不可能的。

我确信它可以完成,但是将其关闭所需的步骤将非常密集,以至于很难保证服务器/系统的稳定性。

问题确实出在 64 位系统上。如果将 python 2.4 编译为 32 位,则 Python-Imaginging 将与 python 2.4 一起使用。但是,即使您将 Python-2.4 编译成 32 位,也很难使用库,因为 Centos 中的所有内容都是为 64 位构建的。并且获取这些额外的库很麻烦,因为存储库不包含您需要使其工作的结构。只是,烦人。兜兜转转是不可行的,试图支持这种跛行系统的时间被浪费了。并可能使系统处于危险之中。

不,不能在 64 位机器上安装 PIL for Python 2.4。

于 2013-08-08T16:44:57.073 回答
0

就我而言,我们不支持 PIL 中的所有库(CentOS 6、x64)

*** TKINTER support not available
*** JPEG support not available
--- ZLIB (PNG/ZIP) support available
*** FREETYPE2 support not available
*** LITTLECMS support not available

所以我们使用了以下内容:

yum install freetype freetype-devel libpng libpng-devel libjpeg libjpeg-devel

现在我们有了

*** TKINTER support not available
--- JPEG support available
--- ZLIB (PNG/ZIP) support available
--- FREETYPE2 support available
*** LITTLECMS support not available
于 2013-08-22T12:39:18.560 回答
0

3年后,我知道,但这可以正常工作!标准构建过程不会在 中查找库/usr/lib64,但您无法在运行时指定库路径setup.py build,因此您需要在之后的单独步骤中重新构建二进制文件:

yum install freetype-devel libpng-devel libjpeg-turbo-devel libzip-devel lcms-devel
pip download PIL
unzip pil-1.1.7.zip
cd pil-1.1.7
./setup.py build
./setup.py build_ext -L /usr/lib64/:/usr/local/lib64 --force
./setup.py install --prefix /usr/local/python27 --force --skip-build

这是在 Scientific Linux 6.7 64 位上,使用从源代码编译的 Python 2.7。

于 2016-07-21T21:24:49.520 回答