3

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

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

我尝试了 virtualenv,但是让用户获取激活脚本有点太多了。我一直在研究许多其他解决方案,但找不到适合我的解决方案。

4

2 回答 2

1

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

任何源文件都可以保持这种方式并在原地进行编辑。您可以 tar 并分发整个目录,或者放入 git 之类的东西。

于 2013-09-07T17:21:27.917 回答
0

一种方法是使用virtualenv。它旨在创建隔离的 python 环境并在这方面做得很好。应该有可能(链接以将virtualenv与您的应用程序一起打包。但是virtualenv并不是为此而设计的,因此它并不像它可能的那么容易。

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

于 2013-09-08T04:36:39.193 回答