Python - 使用pyinstaller如何打包多个py文件
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:
用于收集所有打包的文件,生成最终的分发文件夹。
作者:小林同学_Scorpio
本博客所有文章仅用于学习、分享和交流目的,欢迎非商业性质转载。
博主的文章没有高度、深度和广度,只是凑字数,做笔记。由于博主的水平不高,不足和错误之处在所难免,希望大家能够批评指出。
博主是利用参考、引用、抄袭、复制和粘贴等多种方式打造成自己的文章,请原谅博主成为一个无耻的文档搬运工!