python程序转成exe可执行程序-------------pyinstaller打包遇到的坑
[编写时间]
2020年10月16号
[测试环境]
win10+python3.8.5+pycharm
[准备工作]
一.下载installer
1.1 地址:http://www.pyinstaller.org/downloads.html
1.2 下载zip压缩格式的文件到本地(ps:不支持使用pip install pyinstaller 下载安装,因为现在的稳定版支持python3.5 到 python3.7,不支持3.8,会冲突,所以要下载开发版)

1.3 将下载的解压缩
1.4 运行cmd 切换到解压缩的文件夹,使用python setup.py install(ps:我的解压缩文件夹地址是:D:\迅雷下载\pyinstaller-pyinstaller-79c74cd)

1.5 在电脑gui界面 打开 python安装路径/lib/subprocess.py文件,修改文件中shell = False

看到这,恭喜你你已经安装成功能在python3.8运行的pyinstaller
二.下载uxt
1.1 地址:https://github.com/upx/upx
1.2 将下载下来的zip文件解压缩
1.3 将解压缩文件夹中的upx.exe文件放到 python安装路径\Scripts

至此所有准备工作完成了
三. pyinstaller参数说明
表格来源:http://c.biancheng.net/view/2690.html
| -h,--help | 查看该模块的帮助信息 |
|---|---|
| -F,-onefile | 产生单个的可执行文件 |
| -D,--onedir | 产生一个目录(包含多个文件)作为可执行程序 |
| -a,--ascii | 不包含 Unicode 字符集支持 |
| -d,--debug | 产生 debug 版本的可执行文件 |
| -w,--windowed,--noconsolc | 指定程序运行时不显示命令行窗口(仅对 Windows 有效) |
| -c,--nowindowed,--console | 指定使用命令行窗口运行程序(仅对 Windows 有效) |
| -o DIR,--out=DIR | 指定 spec 文件的生成目录。如果没有指定,则默认使用当前目录来生成 spec 文件 |
| -p DIR,--path=DIR | 设置 Python 导入模块的路径(和设置 PYTHONPATH 环境变量的作用相似)。也可使用路径分隔符(Windows 使用分号,Linux 使用冒号)来分隔多个路径 |
| -n NAME,--name=NAME | 指定项目(产生的 spec)名字。如果省略该选项,那么第一个脚本的主文件名将作为 spec 的名字 |
四.安装时候,我遇到的问题
1. 解决PyInstaller vcruntime140.dll没有被指定在Windows上运行
在打包的时候增加参数 -noupx
2. 解决打包完成,运行时候有小黑窗出现
在打包的时候增加参数 --nonconsole
打包exe命令实例
1.cmd切换到pyinstaller.exe所在的目录(ps:一般在python安装路径/Scripts)
2.运行
pyinstaller.exe -F --noupx --noconsole E:\date\PycharmProjects\test\guess_exe.py
结果:
会在 在python安装路径/Scripts/dist 生成一个exe文件,运行不带有小黑框
打包的demo--简单的一个GUI界面
from tkinter import *
root = Tk()
root.mainloop()
小白编写,也是一知半解,可能有错误,请纠正,谢谢
本数据来源百度搜索,汇总而成

浙公网安备 33010602011771号