如何将带有第三方模块的Python项目打包为Windows平台上的单一应用程序
我正在用Python语言做一个项目。我使用了很多第三方模块来增加项目的功能,都是为了Python 3.3。我的问题是,如何把整个项目打包成一个单独的应用程序,包含所有的第三方模块,以便在Windows平台上运行。
我查找了一些资料,但找到的唯一答案是需要手动把所有需要的模块和项目一起复制过去。不过,我不仅想包含这些第三方模块,还想把整个项目打包成一个exe文件。
1 个回答
3
看看这个 pynsist,它几乎完全符合你的要求。
它的工作原理是创建一个包含Python核心、你的模块和依赖项的MSI安装程序。这个MSI安装程序会在开始菜单中创建一个快捷方式,让你可以启动你的应用程序。
举个例子(这是文档中的原话):
创建一个文件 installer.cfg
:
[Application]
name=My App
version=1.0
# How to launch the app - this calls the 'main' function from the 'myapp' package:
entry_point=myapp:main
icon=myapp.ico
[Python]
version=3.4.0
[Include]
# Importable packages that your application requires, one per line
packages = requests
bs4
html5lib
# Other files and folders that should be installed
files = LICENSE
data_files/
确保你已经用 pip install
安装了 pynsist
,然后运行:
$ pynsist installer.cfg
你可以在 build/nsis
目录下找到创建好的MSI安装程序。
不过也有一些缺点:
- 这个应用程序不是一个单独的 *exe 文件,而是一个完整的目录和一个开始菜单的快捷方式。
- Python解释器会被全局安装在系统上。
- 这个MSI文件比较大。