pyinstaller打包exe后不能运行报Failed to execute script XXXX问题分析与处理

简介: pyinstaller打包exe后不能运行报Failed to execute script XXXX问题分析与处理

最近用python的tkinter写了个小工具,发现用pyinstaller打包成exe后运行出错。报Failed to execute script XXXX

pyinstaller -F -w worksubmit.py

报错

为了搞清楚报错的原因,想看到程序具体执行的情况。可以通过不带-w的参数打包在控制台看程序执行情况。
pyinstaller -F worksubmit.py 可以通过不带-w的参数打包,这时打包的exe运行是带控制台的命令行

运行情况

可以清楚的看到

ModuleNotFoundError:No module named 'xlrd'

这时就要解决打包时xlrd模块没有打进去的问题,找到xlrd模块的位置,并将该模块打到运行程序包里。
先找到程序依赖的xlrd模块的位置,在PyCharm中通过"File"->"Setting",在项目设置里查看Project interpreter,可以看到xlrd的目录位置。

找包路径

用pyinstall打包的时候通过加-p的参数将依赖的模块打进去。

pyinstaller -F -p J:\study\python\testsubmit\venv\Lib\site-packages worksubmit.py

在这里插入图片描述
这样就可以顺利将依赖的模块打进去,再执行exe文件不再报错了。

总结一下,碰到打包成exe后运行有问题,可以通过不带-w的参数打包,这时打包的exe运行是带控制台的命令行。基本上所有的运行问题都可以通过控制台的命令定位和排查。

目录
相关文章
|
资源调度 JavaScript Windows
yarn install命令报错解决办法-warning package-lock.json found.
yarn install命令报错解决办法-warning package-lock.json found.
394 0
|
Oracle 关系型数据库 Go
【开发工具】解决 Goland 报错:Found several packages [main, xxx] in ...
【开发工具】解决 Goland 报错:Found several packages [main, xxx] in ...
1773 0
【开发工具】解决 Goland 报错:Found several packages [main, xxx] in ...
|
8月前
|
Shell Android开发
./build_native.sh执行错误
./build_native.sh执行错误
关于ml.exe编译时的错误提示:error A2138 和 error A2036
关于ml.exe编译时的错误提示:error A2138 和 error A2036
|
6月前
|
资源调度 前端开发 JavaScript
前端 nodejs 命令行自动调用编译 inno setup 的.iss文件
前端 nodejs 命令行自动调用编译 inno setup 的.iss文件
|
数据可视化 Python
常见的bug---5、在安装superset时候报错,Command “python setup.py egg_info“ failed with error code 1
常见的bug---5、在安装superset时候报错,Command “python setup.py egg_info“ failed with error code 1
|
9月前
|
Go C语言
安装go-sqlite3包时报exec: "gcc": executable file not found in %PATH%解决办法
安装go-sqlite3包时报exec: "gcc": executable file not found in %PATH%解决办法
307 0
|
Java C语言 Python
Python安装Jnius库报错DLL load failed:找不到模块
Python安装Jnius库报错DLL load failed:找不到模块
395 0
Python安装Jnius库报错DLL load failed:找不到模块
|
9月前
|
资源调度 前端开发 Java
React Native 运行报错 Command failed_ gradlew.bat app_installDebug -PreactNativeDevServerPort=8081
React Native 运行报错 Command failed_ gradlew.bat app_installDebug -PreactNativeDevServerPort=8081
237 0
“‘nrm 不是内部或外部命令,也不是可运行的程序,nrm报错 [ERR_INVALID_ARG_TYPE] 解决方法
“nprm 不是内部或外部命令,也不是可运行的程序, 看到这个错误,我们一下子就能明白,啥原因不能使用命令呢,那肯定就是环境变量没有配置啦。不管是哪个命令,报这个问题都是环境变量没有配置好。
“‘nrm 不是内部或外部命令,也不是可运行的程序,nrm报错 [ERR_INVALID_ARG_TYPE] 解决方法