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()

小白编写,也是一知半解,可能有错误,请纠正,谢谢

 

本数据来源百度搜索,汇总而成


 




  

 

posted @ 2020-10-16 10:59  小白的勤奋  阅读(860)  评论(0)    收藏  举报