pyinstaller 打包成exe出现的问题+解决办法

问题:exe文件运行无反应

  • 首先查看自己打包时候用的参数,如果码中没有tkinter之类的GUI窗口的话就不要用 -w 了
    同时查看一下码里面有没有标准化输入输出,例如print,如果有就不要用 -w
    因为 -w 参数的意思是关掉控制台dos窗口,本来要显示的东西就只能显示在dos上,所以自然什都没有

解决方案

  • pyinstaller -F xxx.py

问题:提示failed to execute script xxx

  • 这个问题我遇到的时候是用tkinter在写一个小程序,生成exe点开之后就出现了failed to execute script xxx的问题,如下图
    《pyinstaller 打包成exe出现的问题+解决办法》

解决方案

 重新打包,在打包的时候加入了参数 -c
《pyinstaller 打包成exe出现的问题+解决办法》
加入参数-c后重新打包再次运行exe
《pyinstaller 打包成exe出现的问题+解决办法》

-c的作用是返回错误信息!错误信息如上图所示,没有找到‘bg.jpg’!
这个文件是我用作tkinter窗口背景的一张资源。
这张图片是直接放在py文件的同一目录下的,直接打开py文件运行没有问题
而生成exe后运行却提示failed to execute scrip…
问题就出在这里!打包后的exe生成在dist文件夹中,exe不在与资源文件在同一目录,将‘bg.jpg’ copy到 与exe文件同一目录下以后问题解决。由此知道,pyinstaller打包并没有将调用到的资源文件打包在exe文件中,所以exe没有办法再用到该资源。解决办法是将资源和exe文件放到同一目录或者将源码中用到的资源路径改成绝对路径。

问题:打包的时候出现了很多warning:lib not found…dll

  • 原因是pyinstaller 没有办法识别到这些dll

解决方案

解决办法是中copy warning中一些dll文件的名字,再电脑中搜索到他们的路径!
我搜索到的路径:C:UsersASUSAppDataRoamingpyinstallerbincache00_py36_64bit

该路径下面就是那一大堆warning的dll文件,这个路径添加到环境变量里面
方法如下
右键 此电脑——属性——高级——环境变量——用户变量中Path编辑新建然后填入刚刚dll所在的路径
然后问题就解决了

以上是我用pyinstaller时遇到的一些问题和解决办法,有不正确的地方欢迎指正,有问题也欢迎大家提出交流~

    原文作者:M_ha
    原文地址: https://segmentfault.com/a/1190000014781519
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞