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

小灰灰 2022-12-22 08:59 654阅读 0赞

1.安装pyinstaller

  1. $ pip install pyinstaller

2.pyinstall命令参数解析

  1. pyinstaller [参数] [图标文件.ico][要打包的程序.py]
  2. 参数说明:
  3. i 选择.ico图标文件
  4. -F 打包成一个exe文件
  5. -w exe使用窗口,无控制台,建议调试完全正常后再使用
  6. -c exe使用控制台,无窗口,建议先使用控制台,打开exe之后可以看到错误信息
  7. -D 创建一个目录,里面包含exe以及其他一些依赖性文件
  8. 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,由于网络原因或配置问题某些文件缺失导致的,因此改用源码安装即可

  1. $ git clone https://github.com/pyecharts/pyecharts.git
  2. $ cd pyecharts
  3. $ pip install -r requirements.txt
  4. $ 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"不一样,但是解决方法不变,将对应内容修改即可

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

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

若遇到其他Error,欢迎评论探讨

发表评论

表情:
评论列表 (有 0 条评论,654人围观)

还没有评论,来说两句吧...

相关阅读

    相关 PyQt5打包生成exe

    在我们平时PyQT5 开发的时候经常需要将文件打包生成exe放到别的电脑上执行,但是经过我多次测试发现像pyinstaller这个打包方式,好像不太可行,我这里只是我测试的不