在多个系统上使用PIL

时间:2012-04-02 20:59:20

标签: python python-imaging-library

在以下情况下寻找一些建议和最佳实践指导。我有一个从源代码运行的python应用程序,并包含所有依赖项。使用PIL时会出现一些问题。不同的python版本需要不同的PIL源,64位和32位需要不同的版本。

我们决定支持:

Python 2.4 64位

Python 2.4 32位

Python 2.7 64位

Python 2.7 32位

我必须找到必要的源包并将它们全部包含在内。问题是导入它们的最佳方法是什么?我是否检查python版本和操作系统版本并根据它导入不同的PIL版本(如果是,你可以导入东西?)或者我可以导入一次吗?

希望一切都有道理。谢谢

2 个答案:

答案 0 :(得分:2)

我将采取与@ alan的答案相反的方向,不建议你甚至分发你的4个硬编码环境。

如果您直接分发源代码,那么您根本不应该包含预构建的依赖项。创建某种setup.py以下载和安装依赖项。或者考虑将您的应用打包成一个独立的可执行文件

您的软件包可以在本地包含PIL的安装文件,因此不需要下载,但它们应该由实际的最终用户构建以匹配其架构。尝试使您的应用程序完全解决所有问题并指向许多预编译软件包之一是毫无意义的。

如果您想为包含整个环境的不同系统创建自我可执行包,那么您还可以查看py2exe,py2app和pyinstaller。

答案 1 :(得分:0)

你听说过virtualenv吗? http://pypi.python.org/pypi/virtualenv

根据您的要求,我相信它会满足您的需求。它是专门为解决为不同版本的Python安装和维护不同环境以及为每个版本安装的不同软件包而创建的。

看看它是否能满足您的需求,但我相信您需要两个不同的盒子(或VM)来分隔32位和64位环境。

无论如何,一旦你设置了四个环境,你就可以激活一个环境,在该环境中运行的Python代码中的import PIL语句将获得正确的库。