将Python部署为单个可执行文件

时间:2018-07-15 00:01:40

标签: python deployment

我想找到一种方法来将Python程序部署为Debian上的可执行文件,并在其中进行捆绑:

  1. 依赖关系和第三方库
  2. 可能需要在主机上安装的代码。通常,Python中的某些库,例如pilowsnappy,取决于/usr/lib中的共享库

我认为您可以分别实现(1)和(2)。为实现(1),我相信存在virtualenv的不同运输方式,而对于(2),我已经看到一些人使用Docker映像或Ansible安装工具/模块在主机操作系统上。

对我来说,感觉到通过两个系统来实现(1)和(2),存在使它们不同步的风险。认为如果有人在其Python程序中添加了外部依赖关系,就很容易出错,他可能还必须更改Docker映像。因此,我想知道是否同时存在这两种情况。

3 个答案:

答案 0 :(得分:2)

我大约两天前读到了XAR,这是FB的可执行档案。看看it

答案 1 :(得分:0)

是的,我知道的两个应用程序是py2exe和PyInstaller。我很确定两者都支持Python 3,并且可以存储依赖项,库等。我建议使用此链接以获取更多信息:Making a Stand Alone Executable from a Python Script using PyInstaller

答案 2 :(得分:0)

使用Ansiblevirtualenv的Debian,MacOsX(brew)和RedHat的requirements文件,我可以达到完全相同的目的。

作为剧本示例的一部分:

  - name: Install prerequisite pip packages
    pip:
      requirements: "{{ _tmp.path }}/{{ required_pip_packages }}"
      virtualenv:  "{{ venv_dir }}"

如果您需要更多信息,请告诉我。