python3的cxfreeze 的简单使用
cxfreeze 用于将python3源码封装成windows下可执行的exe文件注意:64位的python封装出适用于64位系统的exe,如果想封装出32位的,需要安装32位的python必须在windows下封装,linux上不能封装成win的可执行程序封装主程序即可,会自动处理依赖关系的文件名不要太奇葩,会跪方法一:利用命令行优点:简单粗暴,方便快捷常用,缺点:不太适
cxfreeze 用于将python3源码封装成windows下可执行的exe文件
注意:
- 64位的python封装出适用于64位系统的exe,如果想封装出32位的,需要安装32位的python
- 必须在windows下封装,linux上不能封装成win的可执行程序
- 封装主程序即可,会自动处理依赖关系的
- 文件名不要太奇葩,会跪
方法一:利用命令行
- 优点:简单粗暴,方便快捷常用,
- 缺点:不太适用于复杂的项目
简单使用
假设已经安装和配置好。
首先,打开cmd
开始---运行---cmd
为了方便,切换到源代码的文件夹,注意要换一个盘不能直接cd,要先d:
切换盘之后才可以继续
接下来就是一句话,第一个路径是源文件的(假设现在在源文件的目录),第二个路径是封装后的exe输出的路径(最好完整路径)。
cxfreeze xxx.py --target-dir d:\dist\
如果一开始没有切路径,就补上源文件的完整路径。
cxfreeze d:\source\xxx.py --target-dir d:\dist\
加上图标
注意图标的格式必须是.ico
。加上一个参数--icon=d:\xxxx.ico
比如cxfreeze xxx.py --target-dir=d:\dist\ --icon=d:\xxxx.ico
方法二:编写setup.py
如果方法一跪了的话。。。。用到的时候一般是有些扩展库没有自动封装
- 优点:手动挡。酷炫!完整掌控!
- 缺点:手动挡,小麻烦。
cxfreeze-quickstart
切到源代码目录,在cmd下
cxfreeze-quickstart
接着按他给的提示走,最后会生成一个setup.py文件
内容大概是这样
from cx_Freeze import setup, Executable
# Dependencies are automatically detected, but it might need
# fine tuning.
buildOptions = dict(packages = [], excludes = [])
base = 'Console'
executables = [
Executable('test.py', base=base)
]
setup(name='test_project',
version = '1.0',
description = 'test for cxfreeze',
options = dict(build_exe = buildOptions),
executables = executables)
举个栗子,我的程序依赖的lxml库没有封装进去,这个时候我就需要在packages = []
中加上packages = ["lxml"]
,注意,不需要吧所有的库都手动加进去,只用加自动解析不了的库。
顺便说一下base可以设置的值:
Console
windows Console application,默认值。Win32Gui
如果图形化的话才选
封装!
现在有了setup.py 后,在命令行
python setup.py build
即可
另外说一下封装成安装包
python setup.py bdist_msi
更复杂的使用
编写setup.py 还可以应对更复杂的程序的封装。请参考官方文档。
参考
更多推荐
所有评论(0)