简要介绍
把python 文件打包成exe(可执行文件可以到别人的电脑上(win系统)使用 不需要安装python环境)使用的包是 pyinstaller。
打包的方法有两种
使用使用命令行的方式打包。
- 例如
pyinstaller -Fw .\tools.py -n tool_3.7 -i .\12.ico
使用配置文件的方式打包
- 1、使用 pyinstaller 的工具生成spec文件,命令如下,会在app.py的当前目录生成app.spec文件
pyi-makespec app.py
文件内容如下:
- 2 打包 exe 使用如下命令
pyinstaller -F app.spec
- 这两种方式是一样的都可以打包单个文件和多个文文件
- 命令行的方式它内部会自己动成生成.spec文件
优点:命令行的方式适合单个py文件的打包,比较方便。
spec 文件的方式适合多文件的打包。
生成的结果:
会生成一个dist 的文件夹里面是*.exe 的文件。
单个exe 文件形成 (比较简洁,加载速度慢,拷个exe 文件给别人就可以使用)
命令
文件目录的形成(加载速度比较快,需要拷贝整个打包后目录)
命令 | 说明 |
---|---|
pyinstaller -F | 生成单个文件 |
pyinstaller -D | 生成目录 |
命令行详细参数如下:
参数说明:-F 打包的py文件,-n 打包后exe 文件名 ,-i exe 文件的头标。
-w 参数就 关掉需要终端,默认是开启,就是你运行exe 文件时,打开一个cmd 终端。
命令行的方式
打包单个py文件
pyinstaller -F *.py -w -i ./i.ico -n tools
打包多个文件
pyinstaller -F main.py, -p test.py, -p data.py -n tools
spec 文件的方式:
spec 文件参数配置的说明
Analysis([‘tools.py’])把你需要打包的py文件配置在Analysis里面的列表里面
FAQ :
- 1 第一个位置,一定是的入口文件
- 2 其他文件不在py文件的同级目录的一定要使用绝对路径
EXE()这个配置是生成文件的配置
例如
console=False 这个选项是是否打开终端,建立首次生成时,设置为True,因为你需要调试,调式ok 再把console 关掉。
icon=‘12.ico’ ,配置exe 的头标,一定要使用绝对路径,我这里不是绝对(
因为我的icon图标和 入口py文件在同级目录)
遇到的问题:
关于打包文件后exe 文件闪退,解决办法
在cmd 种执行exe
导包找不到丢失的问题
方法一,把导报文件路径手动加入到 打包路径中
方法二 ,把你的py文件整合成一个py文件进行打包
生成文件exe 报编码错误UnicodeDecodeError的问题
1、把你路径的反斜杠换成斜杠/(win 系统存在)
2、路径中存在中文