Pyinstaller打包多个.py文件

本文介绍使用PyInstaller进行Python程序打包的实用技巧,包括避免常见错误的方法、如何组织文件结构及命令参数详解等。
该文章已生成可运行项目,

一、多文件打包为单一文件时,即pyinstaller 命令中加入了-F,也可能会导致错误。尽量不要使用-F。

二、尽量把打包后的文件放在英文目录下。

多个.py文件打包命令格式如下:

pyinstaller [主文件] -p [其他文件1] -p [其他文件2] --hidden-import [自建模块1] --hidden-import [自建模块2]

三、使用pyinstaller打包的时候,仅打包.py文件,其余依赖项只需在打包完成后,拷入打包生成的根目录即可。

四、举例说明:

我的文件构成

其中VIPCracker.py是主程序入口文件,其他.py文件是自建模块,需要在主文件中使用,zh_CN.qm和JygoxigmJ.db文件是程序中需要用到的额外文件(将它们放在打包后生成的.exe文件的同一个目录下即可)

以上文图中结构为例,在根目录打开命令窗口并进入根目录下,输入命令:

pyinstaller -F -i crack.ico -w VIPCracker.py -p CholenSql.py -p ImgICon.py -p VIPGUI.py --hidden-import CholenSql --hidden-import ImgICon --hidden-import VIPGUI
拓展知识:pyinstaller 中的-i crack.ico 可以设置生成.exe文件的图标。
本文章已经生成可运行项目
PyInstaller是一个用于将Python应用打包成独立可执行文件的工具,它可以处理多个`.py`脚本,并将其合并到一个单独的可执行程序中。使用PyInstaller打包多个`.py`文件的步骤如下: 1. **安装PyInstaller**: 首先,确保你已经安装了Python和pip(如果还没有),然后通过命令行安装PyInstaller: ``` pip install pyinstaller ``` 2. **创建spec文件**: 对每个要打包的`.py`文件,需要为其创建一个spec(specification)配置文件。例如,对于一个名为`script1.py`和`script2.py`的文件,你可以分别创建`script1.spec`和`script2.spec`: ```python # script1.spec from PyInstaller.utils.hooks import collect_data_files a = Analysis(['script1.py'], ...) datas = collect_data_files('script1') coll = COLLECT(a.binaries, a.zipfiles, a.datas, strip=False, upx=True, name='script1') ``` ```python # script2.spec from PyInstaller.utils.hooks import collect_data_files a = Analysis(['script2.py'], ...) datas = collect_data_files('script2') coll = COLLECT(a.binaries, a.zipfiles, a.datas, strip=False, upx=True, name='script2') ``` 3. **合并spec文件打包**: 将所有spec文件放在同一目录下,然后可以使用`pyinstaller`命令合并它们: ``` pyinstaller --onefile script1.spec pyinstaller --onefile script2.spec ``` 或者,如果你想要一次性打包所有文件,可以在`Analysis`部分指定所有的脚本路径。 4. **生成可执行文件**: 执行上述命令后,会在`dist`目录下生成对应的独立可执行文件(如`script1.exe`和`script2.exe`)。
使用pyinstaller打包多个.py文件.exe文件,不出现cmd窗口,可以按照以下步骤进行操作: 1. 安装pyinstaller 在终端(cmd或者powershell)中输入以下命令安装pyinstaller: ``` pip install pyinstaller ``` 2. 创建spec文件 在终端中进入要打包.py文件所在的目录,输入以下命令创建spec文件: ``` pyinstaller --name=yourappname --onefile --noconsole yourscript1.py yourscript2.py ... ``` 这里的yourappname是你打包后的.exe文件的名称,--onefile表示将所有的依赖文件打包在一个文件中,--noconsole表示不显示命令行窗口(也就是去掉cmd窗口)。 3. 修改spec文件 打开刚刚生成的.spec文件,找到 Analysis 函数,将其改为如下所示: ``` a = Analysis(['yourscript1.py', 'yourscript2.py'], pathex=['.'], binaries=[], datas=[], hiddenimports=[], hookspath=[]) a.datas += [('templates\\*', 'templates')] pyz = PYZ(a.pure, a.zipped_data, cipher=None) exe = EXE(pyz, a.scripts, a.binaries, a.zipfiles, a.datas, [], name='yourappname', debug=False, bootloader_ignore_signals=False, strip=False, upx=True, upx_exclude=[], runtime_tmpdir=None, console=False ) ``` 其中的a.scripts改为['yourscript1.py']即可。 4. 打包exe文件 在终端中输入以下命令打包exe文件: ``` pyinstaller yourappname.spec ``` 5. 查看exe文件 在dist目录下会生成一个yourappname.exe文件,双击该文件即可运行应用程序,此时不会弹出cmd窗口。 注意:如果你的python环境是64位的,而你打包的exe文件需要在32位的系统中运行,那么需要在打包时指定--arch=32选项。
评论 55
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值