Pyinstaller打包pyecharts和pyqt程序 生成exe错误解决

1.安装pyinstaller

$ pip install pyinstaller

2.pyinstall命令参数解析

pyinstaller [参数] [图标文件.ico][要打包的程序.py]

参数说明:
–i 选择.ico图标文件
-F 打包成一个exe文件
-w exe使用窗口,无控制台,建议调试完全正常后再使用
-c exe使用控制台,无窗口,建议先使用控制台,打开exe之后可以看到错误信息
-D 创建一个目录,里面包含exe以及其他一些依赖性文件
pyinstaller -h 来查看参数

ico文件生成:http://www.bitbug.net/

3.打包步骤

①把所有用到的py文件放在一个文件夹中,并使用main.py统一调用,在当前文件夹打开cmd

②输入pyinstaller -F -i -c pic.ico main.py,回车后会自动执行,其中INFO是正常的,WARNING可以忽略,但若出现ERROR应该按照提示解决,最后出现下图的exe路径就是成功了,另外会在目录下生成main.specbuild文件夹、dist文件夹
在这里插入图片描述
不要急着打开生成的exe,因为你文件目录下的其他py文件还没include。看到文件目录下生成的main.spec,这是一个脚本,pyinstaller就是根据这个脚本内容而进行打包的。打开main.spec,看到圈住的一个list,在里面添加其他的.py文件
在这里插入图片描述
变成
在这里插入图片描述
先把第二步生成的build文件夹、dist文件夹删除!!! 在cmd中执行pyinstaller -F -i -c pic.ico main.spec 注意是main.spec

⑤打开生成的dist文件夹,里面有一个main.exe,不要直接双击打开!!因为如果遇到错误会直接闪退,在当前路径下打开文件夹,输入.\main.exe会看到错误信息。如果到这里都一帆风顺,那么恭喜你打包已经成功。


但是往往没有这么顺利,下面说说打开exe文件后遇到的错误及解决方法

错误:[Errno 2] No such file or directory: 'C:\Users\ADMINI~1\AppData\Local\Temp\_MEI一串数字\pyecharts\datasets\map_filename.json

解决方法:可以看到这是一个关于pyecharts的错误,错误原因是使用pip来安装pyecharts,由于网络原因或配置问题某些文件缺失导致的,因此改用源码安装即可

$ git clone https://github.com/pyecharts/pyecharts.git
$ cd pyecharts
$ pip install -r requirements.txt
$ python setup.py install

但是解决上述错误后,删除文件夹再次打包运行还是出现另一个错误

错误:pkg_resources.DistributionNotFound:the “prettytable” distribution was not found…

解决方法:在python安装目录下D:\Python\Lib\site-packages\PyInstaller\hooks下面新建hook-ctypes.macholib.py在其中输入下面语句。可能你遇到的引号中内容"prettytable"不一样,但是解决方法不变,将对应内容修改即可

from PyInstaller.utils.hooks import copy_metadata
datas = copy_metadata('prettytable') 

删除文件夹,再次打包pyinstaller -F -i -c pic.ico main.spec,双击成功运行

若遇到其他Error,欢迎评论探讨
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值