如何分发独立的python应用程序?

时间:2013-09-07 15:56:13

标签: python

我想将Python应用程序分发给同事供他们使用。该应用程序将在Linux系统上运行,但用户没有管理员权限,因此无法安装我的应用程序的模块依赖项。我希望用户能够解压我的应用程序,然后运行我的main.py脚本。运行另一个一次性“安装”类型的脚本是可以的,但不是很多。

PyInstaller接近我想要的。除了我想分发我的应用程序的源代码。所以应用程序应该是独立的和自包含的(有或没有python解释器很好,最好有),但用户应该能够对代码进行小的更改并重新运行应用程序。我理想的解决方案是创建我的所有应用程序模块依赖项的某种压缩/编译存档,并将其与我的应用程序一起分发。它不必是所有依赖项,但至少是非标准软件包。然后,应用程序将从此存档导入模块,而不是用户的PYTHONPATH。

我尝试过virtualenv,但让用户使用激活脚本的源代码太多了。我一直在寻找其他许多解决方案,但我找不到适合我的解决方案。

2 个答案:

答案 0 :(得分:1)

为什么不用你想要使用的解释器创建一个目录,添加任何模块等。然后输入一个bash脚本,比如调用程序的run.sh。它可以使用您的python文件,参数等启动您选择的解释器。

任何源文件都可以保留这种方式并进行编辑。你可以tar并分发整个目录,或者输入像git这样的东西。

答案 1 :(得分:0)

一种方法是使用virtualenv。它旨在创建孤立的python环境,并做得很好。应该可以(link通过一些努力将virtualenv打包到您的应用程序。但是virtualenv不是为此设计的,所以它并不是那么容易。

package-virtualenv GitHub项目也可能有所帮助。