【问题标题】:How to make an executable file in Python?如何在 Python 中制作可执行文件?
【发布时间】:2010-04-25 20:55:44
【问题描述】:

我想为我的 Python 应用程序制作一个可执行文件 (.exe)。

我想知道怎么做,但请记住:我使用的是 C++ DLL!

我是否必须将 DLL 与 .exe 放在一起,还是有其他方法?

【问题讨论】:

标签: python executable


【解决方案1】:

py2exe 可以生成单个文件的可执行文件。有关示例,请参见 this link

我使用的 setup.py 使用以下选项组合:

'compressed': 1,
 'optimize':2,
 'bundle_files': 1

我通常在可执行文件所在的同一文件夹中添加外部 dll(例如 msvcr71.dll)。

为了便于分发并在生成 exe 后自动安装,您可以使用 Inno Setup 创建一个安装程序,将您的 exe 和 dll 以及其他文档(自述文件等)放入应用程序目录

【讨论】:

    【解决方案2】:

    按照这些步骤操作:您可以在 site 中找到此文档。

    1) 安装 PyInstaller:

    假设您在此目录 c:\PythonXX\Scripts 中安装了 PIP,如果没有转到此 site 并查看有关如何“安装 Python 索引项目 (PIP)”的说明。转到命令提示符并键入以下命令。

    • cd c:\Python27\Scripts 进入这个目录按回车
    • 然后输入 -> pip install pyinstaller 再按回车
    • 这应该会成功安装 PyInstaller!
    • Obs:安装完成后,您不需要在 Scripts 文件夹中包含 pyinstaller,因为我们需要 PIP 来安装 pyinstaller 文件。为了使事情更有条理,我通常将 pyinstaller 文件移动到另一个文件夹。要移动 pysintaller 文件,请转到 pyinstaller 文件所在的 Scripts 文件夹并查找所有以“pyi”开头的文件,您还可以查看“修改日期”列以查看同时创建了哪些文件。当你运行上面的脚本时,它应该是 24 个 pyi 文件。将这些文件复制到您选择的另一个文件夹中,我通常在 C:\ 驱动器中创建一个文件夹并将其命名为“CreateExecutables”,其中另一个文件夹名为“pyinstaller_files”。

    2) 安装 PyWin32:

    转到此站点并查找名为 pywin32-218.win32-py2.7.exe 2.7 的可执行文件,它适用于 python27 的 32 位系统,查找与您对应的那个。运行可执行文件,它应该会成功安装与 pyinstaller 一起工作的 PyWin32!

    3) 创建单个可执行文件

    现在您有了 PyInstaller 和 PyWin32,您可以开始创建单个可执行文件。单个可执行文件将在另一个名为“dist”的文件夹中创建,当您运行 pyinstaller 命令时,该文件夹也会动态创建。为了清楚您的 pyinstaller 文件被您复制到另一个文件夹(可能称为“pyinstaller_files”文件夹),所以现在在命令提示符下键入以下命令。

    • c:\python27\CreateExecutables\pyinstaller_files>pyinstaller --onefile c:\test\test1\yourscript.py
    • Obs:yourscript.py 的目录是您的 pydev 模块所在的目录。

    4) 概述

    上述命令将在 pyinstaller_files 文件夹中创建一个名为“dist”的文件夹,该文件夹将包含您的单个可执行文件“yourscript.exe”。您现在可以将单个可执行文件移动到您选择的某个位置,并使用“yourscript.spec”文件删除“dist”和“build”文件夹,因为不再需要它们来运行您的单个可执行文件。

    【讨论】:

      【解决方案3】:

      使用py2exe。您可以将 DLL 与最终的 EXE 放在同一文件夹中,它应该可以正常加载。

      【讨论】:

        【解决方案4】:

        看看pyinstaller。它应该为您找到(并相应地发布)这些依赖项。

        【讨论】:

          【解决方案5】:

          我已经使用以下每个工具从 Python 2.7 代码构建了 exe 文件:

          • Cython(带有 --embed 选项)
          • 努伊特卡
          • Py2exe

          这些都将产生一个独立的 exe。您的安装程序必须包含必要的 CRT dll。对于普通用户而言,您的最终结果将与任何其他 exe 没有区别。

          前两个首先编译为 C,然后使用您安装的任何编译器将其编译为最终的 exe。 Py2Exe 将 Python 和所有 .pyo 文件捆绑到一个 zip 中,然后嵌入到 exe 中。启动时,它会解压缩到临时目录并从那里运行 python。您需要将 dll 添加到 .spec 文件中,以便将其包含在 zip 资源中。或者,将您的 dll 与 exe 一起安装并使用 python 中的绝对路径加载它。

          【讨论】:

            【解决方案6】:

            cx_Freeze 也不错。

            cx_Freeze 是一组脚本和模块,用于将 Python 脚本冻结为可执行文件

            【讨论】:

            • 好的,我阅读了有关该问题的评论,我只是注意到该问题的公认答案也是推荐 cx_Freeze 的人。不过,我仍然会在这里保留这个答案。
            【解决方案7】:

            PyInstaller 是最佳选择,因为它适用于 Windows 和 Linux。 如果您使用的是 arch linux,请使用此链接:PyInstaller 或尝试yaourt pyinstaller

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2016-06-19
              • 1970-01-01
              • 2014-04-25
              • 1970-01-01
              • 2011-07-12
              • 2019-01-10
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多