用 pyinstaller 打包生成 exe 后,执行时出现 Failed to execute script 错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用 pyinstaller 打包生成 exe 后,执行时出现 Failed to execute script 错误相关的知识,希望对你有一定的参考价值。

打包的是窗口程序,用-F -w和-D -w打包都试过了,都出现Failed to execute script,求高手指出问题所在!
GUI是用PyQt4生成的

  如果你用的第三方模块是用vc2008 sp1 express编译的话。可能会碰到一个BUG。据说是因为vc2008 sp1在manifest文件写的是原版crt的版本号,但是实际上用的是新版本的crt。
  你可以让用户安装msvcrt看看。只带动态链接库的话,解决办法比较麻烦,要改manifest的版本号。
参考技术A

    首先安装pyinstaller下载地址:7827835传统方式:通过命令提示符cd到该解压的(和setup.py同一目录),然后输入pythonsetup.pyinstall或者直接在命令提示符中输入pipinstallpyinstaller通过piplist可以查看你所有安装的包以及包的版本

    开始打包成exe1、命令提示符cd到需要打包的文件的目录,直接在命令提示符中输入pyinstaller-F文件名.py注意F要大些,呵呵就这么简单

    打包成功后会出现两个文件夹,其中一个就是所需要的exe文件;

    注:若是gui文件可以在输入pyinstaller-F-w文件名.py其中w是小写,意思就是五命令行窗口,默认的是-c有命令行窗口,当然一般的文件也可以-w,这样命令行窗口就没有了。pyinstaller的其他常用的参数--icon=图标路径-F打包成一个exe文件-w使用窗口,无控制台-c使用控制台,无窗口-D创建一个目录,里面包含exe以及其他一些依赖性文件还有一些可以通过pyinstaller-h来查看参数。

参考技术B 在dos命令下*.exe所在目录直接运行该可执行文件,可以看到报错信息;注意:在生成单文件可执行文件的时候不要加-w参数,否则,会直接运行 参考技术C 打包后的执行文件不要放在中文路径下

pyqt用pyinstaller打包出exe文件后运行不了?如图

我添加了环境变量后就可以运行了,但到别人的机子还是弹出这个框,运行不了。该怎么办?打包时有这些信息(部分)这些warning什么意思?15031 WARNING: lib not found: api-ms-win-crt-string-l1-1-0.dll dependency of c:\python35\lib\site-packages\PyQt5\qt5core.dll15468 WARNING: lib not found: api-ms-win-crt-stdio-l1-1-0.dll dependency of c:\python35\lib\site-packages\PyQt5\qt5gui.dll12672 WARNING: lib not found: api-ms-win-crt-string-l1-1-0.dll dependency of c:\python35\DLLs\_bz2.pyd......

原因是我的界面是用QtDesigner生成的ui文件,但是pyinstaller没有打包进来,把相关的ui文件以及用pyuic生成的py文件复制到start.exe目录下即可运行!
如果pyinstaller用了-F命令,只生成一个exe, 也需要按照上面的方法复制相应的ui及ui生成的py文件来exe目录,且目录结构与原始项目结构要一致。追问

你好,你的意思是把ui文件和ui文件转成的py文件放到exe文件同一目录中吗?exe文件在dist文件夹中

要不要重新打包?

我有一个mainwindow,几个dialog对话框,还有一些ui文件

参考技术A

去anaconda 目录下,找对应文件夹plugins\\platforms,复制到程序路径即可

pyinstaller 打包过程及所有遇到的问题解决记录

以上是关于用 pyinstaller 打包生成 exe 后,执行时出现 Failed to execute script 错误的主要内容,如果未能解决你的问题,请参考以下文章

请问python的打包程序 pyinstaller 怎么用啊?

用Pyinstaller把Python3.7程序打包成可执行文件exe

用Pyinstaller把Python3.7程序打包成可执行文件exe

用pyinstaller打包生成的文件,一旦更改图标大小就会恢复默认图标,如何解决。

用pyinstaller生成的exe在某些电脑上能运行,有些则不行

python 中 使用 pyinstaller 打包的exe程序如何调用外部模块?