【发布时间】:2010-04-25 20:55:44
【问题描述】:
我想为我的 Python 应用程序制作一个可执行文件 (.exe)。
我想知道怎么做,但请记住:我使用的是 C++ DLL!
我是否必须将 DLL 与 .exe 放在一起,还是有其他方法?
【问题讨论】:
-
查看这个相关的(不重复的)SO问题:stackoverflow.com/questions/1689086/…
标签: python executable
我想为我的 Python 应用程序制作一个可执行文件 (.exe)。
我想知道怎么做,但请记住:我使用的是 C++ DLL!
我是否必须将 DLL 与 .exe 放在一起,还是有其他方法?
【问题讨论】:
标签: python executable
py2exe 可以生成单个文件的可执行文件。有关示例,请参见 this link。
我使用的 setup.py 使用以下选项组合:
'compressed': 1,
'optimize':2,
'bundle_files': 1
我通常在可执行文件所在的同一文件夹中添加外部 dll(例如 msvcr71.dll)。
为了便于分发并在生成 exe 后自动安装,您可以使用 Inno Setup 创建一个安装程序,将您的 exe 和 dll 以及其他文档(自述文件等)放入应用程序目录
【讨论】:
按照这些步骤操作:您可以在 site 中找到此文档。
假设您在此目录 c:\PythonXX\Scripts 中安装了 PIP,如果没有转到此 site 并查看有关如何“安装 Python 索引项目 (PIP)”的说明。转到命令提示符并键入以下命令。
转到此站点并查找名为 pywin32-218.win32-py2.7.exe 2.7 的可执行文件,它适用于 python27 的 32 位系统,查找与您对应的那个。运行可执行文件,它应该会成功安装与 pyinstaller 一起工作的 PyWin32!
现在您有了 PyInstaller 和 PyWin32,您可以开始创建单个可执行文件。单个可执行文件将在另一个名为“dist”的文件夹中创建,当您运行 pyinstaller 命令时,该文件夹也会动态创建。为了清楚您的 pyinstaller 文件被您复制到另一个文件夹(可能称为“pyinstaller_files”文件夹),所以现在在命令提示符下键入以下命令。
上述命令将在 pyinstaller_files 文件夹中创建一个名为“dist”的文件夹,该文件夹将包含您的单个可执行文件“yourscript.exe”。您现在可以将单个可执行文件移动到您选择的某个位置,并使用“yourscript.spec”文件删除“dist”和“build”文件夹,因为不再需要它们来运行您的单个可执行文件。
【讨论】:
使用py2exe。您可以将 DLL 与最终的 EXE 放在同一文件夹中,它应该可以正常加载。
【讨论】:
看看pyinstaller。它应该为您找到(并相应地发布)这些依赖项。
【讨论】:
我已经使用以下每个工具从 Python 2.7 代码构建了 exe 文件:
这些都将产生一个独立的 exe。您的安装程序必须包含必要的 CRT dll。对于普通用户而言,您的最终结果将与任何其他 exe 没有区别。
前两个首先编译为 C,然后使用您安装的任何编译器将其编译为最终的 exe。 Py2Exe 将 Python 和所有 .pyo 文件捆绑到一个 zip 中,然后嵌入到 exe 中。启动时,它会解压缩到临时目录并从那里运行 python。您需要将 dll 添加到 .spec 文件中,以便将其包含在 zip 资源中。或者,将您的 dll 与 exe 一起安装并使用 python 中的绝对路径加载它。
【讨论】:
cx_Freeze 也不错。
cx_Freeze 是一组脚本和模块,用于将 Python 脚本冻结为可执行文件
【讨论】:
PyInstaller 是最佳选择,因为它适用于 Windows 和 Linux。
如果您使用的是 arch linux,请使用此链接:PyInstaller 或尝试yaourt pyinstaller。
【讨论】: