0.前言:
为了更好的管理python代码,经常我们需要把独立的功能/类写成一个单独的py文件,以方便查阅和读取修改。一般我们使用pyinstaller打包只是打包单一文件即可。但是打包多个文件就比较复杂
正文:
1.我的文件结构如图。一个主文件,一个模块文件、还有两个图标文件
命令添加:
pyinstaller --onefile --add-data "data.txt;." --add-data "other_file.py;." main.py
--onefile
: 将所有内容打包到一个可执行文件中。--add-data "data.txt;."
: 将data.txt
文件包含在可执行文件中。--add-data "other_file.py;."
: 将other_file.py
文件包含在可执行文件中。
例:pyinstaller -F -i favicon_1.ico --onefile --add-data "jb_bak_2_wutou.py;." -w tk_jb_request.py
spec的文件添加:
pyinstaller --name main --onefile --windowed --icon=img_s.ico main.py
原理还是一样的,第一次打包,使用 PyInstaller 来生成初始的 .spec
文件
- --name:生成出来的exe程序名
- --onefile:将所有内容打包到一个可执行文件中。
- --windowed:对于 Windows GUI 应用程序,不显示控制台窗口。
- --icon:打包图标
用编辑器打开这个.spec文件:
编辑.spec文件,只需要修改个地方即可,修改完后关闭保存
修改完后在进行打包,pyinstaller 文件名.spec即可
关键配置项详解
Analysis:
pathex:包含脚本的搜索路径。
binaries:需要包含的额外二进制文件。
datas:需要包含的额外数据文件。
hiddenimports:需要手动指定的隐藏导入模块。
hookspath:自定义的hook文件路径。
runtime_hooks:运行时需要的hook文件。
PYZ:
用于生成包含所有纯Python模块的压缩包。
EXE:
name:生成的可执行文件名称。
console:是否显示控制台窗口(Windows)。
debug:是否生成调试模式的可执行文件。
upx:是否使用UPX压缩可执行文件。
COLLECT:
用于收集所有打包的文件,生成最终的分发文件夹。
标签:文件,pyinstaller,Python,py,--,data,打包 From: https://www.cnblogs.com/xiaolintongxue1/p/18454450