如何使用依赖项分发“静态编译”的Python应用程序

时间:2012-03-26 14:56:19

标签: python software-distribution

我有一个基于Python的应用程序。 我想将此应用程序分发给不同操作系统(主要是Linux,但各种发行版)的用户。

建议的方法是什么?我不希望用户必须安装Python。我想用应用程序(这是免费软件)分发Python 。有点像一个静态编译的程序。

因此,整个应用程序的安装只是解压缩文件夹中的某些文件,然后Python(和使用的模块)和应用程序都包含在此文件夹中(包括子文件夹)。

其他人如何分发他们的Python程序?

如果用户自己安装Python或升级现有的python,则要求应用程序不会中断。这就是我需要将Python的副本与应用程序一起分发的原因。

4 个答案:

答案 0 :(得分:3)

对于Windows:py2exe是我首选的解决方案;你可以构建一个多功能的.exe,包括资源。

对于Linux,要么:

  • 构建rpm并将Python设置为依赖项,或
  • 构建集成了python(dll或libpython.so)的c可执行文件。

答案 1 :(得分:3)

  

建议的方法是什么?   我不希望用户必须安装Python。

通常,Python程序与disutil一起“打包”并安装,以便与现有的Python解释器一起使用。

请参阅:Distributing Python ModulesInstalling Python Modules

将整个解释器捆绑在您的软件分发中并不常见(尽管可能)。

答案 2 :(得分:1)

答案 3 :(得分:1)

或者,请参阅cx_freeze

从他们的网站:

  

关于cx_Freeze

     

cx_Freeze是一组用于将Python脚本冻结为可执行文件的脚本和模块,与py2exe和py2app的方式非常相似。与这两个工具不同,cx_Freeze是跨平台的,应该可以在Python本身可以使用的任何平台上运行。它支持Python 2.3或更高版本(包括Python 3),因为它使用了2.3中引入的zip导入工具。