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

用于收集所有打包的文件,生成最终的分发文件夹。

 

posted @ 2024-10-09 15:55  小林同学_Scorpio  阅读(231)  评论(0编辑  收藏  举报
1