程序都编译环境下实现了,打包卡了一天。。。。好在最后解决了
一、pyinstaller使用简述
首先执行
pyinstaller -F -w 你的程序路径
具体参数说明如下(搬运自Python生成exe和安装包之Pyinstaller带参数【只看这篇就够了】_pyinstaller -p参数-CSDN博客):
-h | 该模块的help信息 |
---|---|
-F | 生成一个可执行文件 |
-D | 生成一个目录(包含多个文件)作为可执行文件 |
-w | 运行exe时,不显示命令行窗口(仅对Windows有效) |
-i | 该参数后跟可执行文件的icon图标路径 |
–distpath | 该参数后跟可执行文件的路径 |
-n | 该参数后跟可执行文件的新名字 |
运行完成后,命令行会有如下结果
运行命令时的目录下会有如下结果(1.2.3.都是运行后生成的)
dist文件夹中就是你打包好的exe了
二、问题描述
首先、打包的时候命令行窗口出现了如图问题
随后exe文件生成出来了,但是双击之后无法正常运行,直接报错。
三、问题处理
从命令行的错误信息入手,查找一下缺少的dll文件是否在电脑中存在,可以用everything搜索。
最终在环境中找到了dll的位置,尝试把dll直接放在exe所在路径,问题并没有解决,会报别的错,可能是依赖关系比较复杂。后来发现可以通过修改spec文件解决问题。
主要修改binaries属性。把发现的dll所在路径(如果用了conda,选择当前使用的conda环境对应的路径)添加到binaries中,按照如图所示格式添加就可以。
然后执行
pyinstaller "D:\01programs\project\main.spec"