Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在多个系统上使用PIL_Python_Python Imaging Library - Fatal编程技术网

Python 在多个系统上使用PIL

Python 在多个系统上使用PIL,python,python-imaging-library,Python,Python Imaging Library,在以下情况下寻求一些建议和最佳实践指导。我有一个从源代码运行的python应用程序,它包含了所有依赖项。使用PIL时会出现一些问题。不同的python版本需要不同的PIL源,64位和32位需要不同的版本 我们决定支持: Python 2.4 64位 Python 2.4 32位 Python2.7 64位 Python 2.7 32位 我将必须找到必要的源程序包,并包括他们所有。问题是什么是最好的进口方式?我是否检查python版本和OS版本,并在此基础上导入不同的PIL版本(是否可以导入其他内

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

我们决定支持:

Python 2.4 64位

Python 2.4 32位

Python2.7 64位

Python 2.7 32位

我将必须找到必要的源程序包,并包括他们所有。问题是什么是最好的进口方式?我是否检查python版本和OS版本,并在此基础上导入不同的PIL版本(是否可以导入其他内容?),还是可以一次性导入


希望一切都有意义。谢谢你听说过virtualenv吗

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

尽管我相信您需要两个不同的框(或VM)来分隔32位和64位环境,但请看一下它是否满足您的需要


无论如何,一旦您设置了四个环境,您只需激活一个环境,在该环境中运行的Python代码中的
import-PIL
语句将获得适当的库。

我将采用@alan的答案的相反方向,不建议您甚至像那样分发4个硬编码环境

如果您直接分发源代码,那么您根本不应该包含预构建的依赖项。创建某种类型的下载并安装依赖项。或者考虑把你的应用程序打包成一个自包含的可执行文件

您的包可以包含本地PIL的安装文件,因此不需要下载,但它们应该由实际的最终用户构建,以匹配其体系结构。试图让您的应用程序明白所有这些并指向许多预编译包中的一个包是没有意义的


如果要为包含整个环境的不同系统创建自执行包,还可以查看py2exe、py2app和pyinstaller

我知道我没有仔细阅读你的问题@jdi在下面有一个更好的答案。virtualenv不会帮助您将应用程序分发给其他人。这就是我所说的。我仍然认为virtualenv对于最终用户来说是个好主意。该软件包可能有一个pip requirements.txt文件和一些简单的指令来快速创建virtualenv、激活它,以及
pip install-r requirements.txt
来构建和安装依赖项(PIL)