如何在Python中制作可执行文件?
我想把我的Python应用程序做成一个可执行文件(.exe)。
我想知道怎么做,但我有一点需要注意:我使用了一个C++的DLL!
我需要把这个DLL和.exe文件放在一起吗,还是有其他方法?
7 个回答
可以使用 py2exe。你可以把DLL文件放在和最终生成的EXE文件同一个文件夹里,这样它就能正常加载了。
按照以下步骤操作:你可以在这个 网站 找到相关文档。
1) 安装 PyInstaller:
假设你已经在 c:\PythonXX\Scripts 这个目录下安装了 PIP,如果没有,可以去这个 网站 查看如何“安装 Python 索引项目(PIP)”。打开命令提示符,输入以下命令。
- 输入 cd c:\Python27\Scripts,然后按回车键进入这个目录。
- 接着输入 -> pip install pyinstaller,再按一次回车键。
- 这样就应该成功安装 PyInstaller 了!
- 注意:安装后你不需要把 pyinstaller 放在 Scripts 文件夹里,这样做是因为我们需要 PIP 来安装 pyinstaller 文件。为了更有条理,我通常会把 pyinstaller 文件移动到另一个文件夹。要移动 pyinstaller 文件,去到 Scripts 文件夹,找所有以“pyi”开头的文件,你也可以查看修改日期列,看看哪些文件是同时创建的。运行上面的脚本时应该会创建 24 个 pyi 文件。把这些文件复制到你选择的另一个文件夹,我通常会在 C:\ 盘里创建一个叫“CreateExecutables”的文件夹,里面再创建一个叫“pyinstaller_files”的文件夹。
2) 安装 PyWin32:
去这个网站,找一个名为 pywin32-218.win32-py2.7.exe 2.7 的可执行文件,这个是针对 32 位系统的 Python 2.7 的,找到与你的系统相对应的版本。运行这个可执行文件,应该能成功安装 PyWin32,它和 PyInstaller 是配合使用的!
3) 创建单个可执行文件
现在你已经安装了 PyInstaller 和 PyWin32,可以开始创建单个可执行文件了。这个单个可执行文件会在一个叫“dist”的文件夹里创建,这个文件夹在你运行 pyinstaller 命令时会自动生成。为了让事情更清楚,你之前把 pyinstaller 文件复制到了另一个文件夹,可能叫“pyinstaller_files”,现在在命令提示符中输入以下命令。
- c:\python27\CreateExecutables\pyinstaller_files>pyinstaller --onefile c:\test\test1\yourscript.py
- 注意:yourscript.py 的目录就是你放置 pydev 模块的地方。
4) 概述
上面的命令会在 pyinstaller_files 文件夹里创建一个叫“dist”的文件夹,这个文件夹里会包含你的单个可执行文件“yourscript.exe”。现在你可以把这个单个可执行文件移动到你想要的地方,并且可以删除“dist”和“build”文件夹以及“yourscript.spec”文件,因为它们不再需要用来运行你的单个可执行文件。
py2exe 可以生成单个文件的可执行程序。想看例子可以查看这个链接。
我使用的 setup.py 文件包含了以下选项组合:
'compressed': 1,
'optimize':2,
'bundle_files': 1
我通常会把一些外部的 dll 文件(比如 msvcr71.dll)放在可执行文件的同一个文件夹里。
为了方便分发和在生成 exe 文件后自动安装,你可以使用Inno Setup来创建一个安装程序,这样可以把你的 exe 文件、dll 文件和其他文档(比如说明文件等)放到应用程序的目录里。