如何在公司共享环境中部署简单的Python应用?

5 投票
4 回答
6743 浏览
提问于 2025-04-16 13:33

我写了一个(显然)很棒的工具,用Python编写的,运行在Linux上,我想和我的同事们分享。我们在不同的机器上工作,但使用的是同一个共享环境。而且,我们都是用户,所以安装依赖项对我们来说并不简单。

现在问题来了: 我喜欢Python,但我的同事们并不在意。他们可以使用公司安装的Python(一个简单的版本),但他们不想去操心这些(这也可以理解,毕竟不是每个人都是程序员)。

问题是: 在这种共享环境中,Python解释器是可以用的,但我的应用程序所需的模块却没有,最简单的分享我的工具的方法是什么呢?

如你所想,我的同事们不想安装任何东西(特别是在用户空间),配置路径可能也是勉强能接受的。 解决方案不应该像打包所有东西那样复杂,像“冻结”那样可能有点过了……

对用户来说,应该是:复制一个特定的tar.gz文件,或者直接去应用程序的共享文件夹,运行应用程序,就完成了。

所以,也许这些模块应该以某种方式嵌入到应用程序中? 或者我应该在我的共享主目录中托管这些模块,并设置一些路径? 又或者,如果用户可以复制整个虚拟环境和路径,虚拟环境会有帮助吗?

我希望你能理解我的问题 :D

谢谢!

4 个回答

1

你可以使用pyinstaller来创建独立的可执行文件。
更多信息请查看:http://www.pyinstaller.org/

3

假设你安装的Python版本是2.6或更高,并且你没有使用任何C语言扩展模块,那么你可以把所有文件放进一个zip压缩包里,里面要包含一个叫做__main__.py的文件,然后在这个zip文件前面加上一个shell头。这正是这个功能被添加的原因。

想了解更多设置方法,可以查看这个链接:http://bugs.python.org/issue1739468

3

为了让大家在“同一个共享环境”中使用,你可以这样做:

  1. your-script 安装到 /your/shared/home/virtualenv 这个地方。

    $ pip install your-app.tar.gz -E /your/shared/home/virtualenv
    
  2. 创建一个链接:

    $ ln -s /your/shared/home/virtualenv/bin/your-script /shared/app/folder/
    
  3. 你的同事们可以通过 /shared/app/folder/your-script 来运行这个脚本,或者把 /shared/app/folder/ 加入到 PATH 中。

特点:

  • 你可以通过控制符号链接指向的位置,来选择哪个版本的脚本可以使用。旧版本可以通过 /your/shared/home/virtualenv-old-version/bin/your-script 来运行。
  • 你可以使用用C语言写的Python扩展。
  • 如果你通过 pip install -e . 在虚拟环境中安装,它会让你工作目录中的版本可用。

总的来说,这种方式并不是安装Python应用的最佳选择。

撰写回答