【发布时间】:2013-11-16 10:29:23
【问题描述】:
我已经安装了Ubuntu 12.04(Precise Pangolin)并安装了一些软件包,PIL。现在想用Pillow,但是不能和PIL同时安装。
我查看了 virtualenv,但我不想安装其他软件包。
还有其他方法可以在不发生冲突的情况下进行设置吗?
【问题讨论】:
我已经安装了Ubuntu 12.04(Precise Pangolin)并安装了一些软件包,PIL。现在想用Pillow,但是不能和PIL同时安装。
我查看了 virtualenv,但我不想安装其他软件包。
还有其他方法可以在不发生冲突的情况下进行设置吗?
【问题讨论】:
您应该从 Git 克隆安装 Pillow(根据需要选择 /opt/pillow):
python setup.py install --prefix /opt/pillow
然后将其包含在您的代码中,
import sys
sys.path.insert(0, "/opt/pillow")
在导入枕头之前
from PIL import Image
这将首先搜索/opt/pillow 目录,没有该插入的任何内容都不会看到 Pillow。
【讨论】:
当使用环境变量PILLOW_NAME 设置(例如PILLOW_NAME=PIL)构建时,我设置了一个 Pillow 的分支,可以任意正确地伪装其包名称。所以你可以像这样在 PIL 包名下安装 Pillow:
$ PILLOW_NAME=PIL pip install -U https://github.com/fish2000/Pillow/archive/master.zip
...如果你愿意,你可以像这样检查自定义包名安装:
$ pip freeze | grep -i pil
[...]
PIL==2.3.0
$ python -c 'from PIL import Image' && echo "PIL installed OK"
PIL installed OK
如果您以“PIL”的名称安装了这个 Pillow fork,您将能够安装需要 PIL 作为要求的软件包。请记住:如果这些软件包依赖于旧的特定于 PIL 的行为(例如 import Image 和朋友),这对您没有帮助 - 但在安装特别需要 PIL 的软件包时,它会解决名称问题。
【讨论】: