Python 在 用 pyinstaller 打包时运行exe报错 failed to execute script ****.exe 原因分析

 

想必大家在学 Python 的过程中, 在 用 pyinstaller 打包后, 再运行 exe 都有报错: failed to execute script ****.exe 的现象

本文为本人趟过的坑, 希望能给你带来帮助......^_^


趟坑过程:

  • 打包命令:( 在Windows的CMD命令窗口输入以下命令 ) 
pyinstaller -i .\images\camera.ico -F -w .\camera1.py
  •  运行结束后,  终端会有成功提示:
INFO: Building EXE from out00-EXE.toc completed successfully.
  • 在 项目目录的 dist 文件夹, 找到 生成的 exe 文件

  •  接着 打开 生成的 exe 文件就会出现如下错误提示:


解决方案:

  • 原因分析:
    • 我的 py 文件里用了图片引用, 使用了相对路径
    • 所以在 dist 目录里直接打开 exe 文件的话, 系统无法找到图片的具体位置
  • 解决方法:
    • 第一种方法: 就是将生成的 exe 文件 copy 到 和项目 py 文件相同的目录下, 即可解决
    • 第二种方法: 将我们的项目文件里的 图片 引用路径, 改成绝对路径, 重新执行下面打包命令也可解决
    • pyinstaller -i .\images\camera.ico -F -w .\camera1.py

知识延伸:

  • pyinstaller 常用选项说明:
    • -F:文件.py 生成单个可执行文件exe
    • -w:表示有窗体显示,使用的tk模块的项目,记得一定要加上-w
    • --icon = 图标路径:给这个应用程序添加图标,要不然就是python默认的图标
    • -i 图片路径:效果同上面的 --icon=xxx/xxx.ico 
    • -c:使用控制台无窗口, pyinstaller执行时默认无窗口
    • -D:生成一个文件夹包括依赖文件
    • -p:添加Python使用的第三方库 
  • 使用示例:
    • pyinstaller -F --icon = 图标文件绝对路径 项目文件.py 

 

完结......

 

 

 

 

引用\[1\]:根据您提供的信息,您在使用pyinstaller打包mmdection目标检测的候遇到了报错"ModuleNotFoundError: No module named 'mmcv._ext'"。这个错误通常是由于打包过程中缺少了mmcv._ext模块导致的。引用\[2\]:另外,您还提到在执行二进制文件遇到了"ModuleNotFoundError: No module named 'distutils'"的错误。这个错误通常是由于缺少distutils模块导致的。引用\[3\]:最后,您还提到在使用pyinstaller打包salt最新版本遇到了"No module named 'setuptools._distutils'"的错误。这个错误通常是由于缺少setuptools._distutils模块导致的。 针对这些错误,您可以尝试以下解决方法: 1. 确保在打包之前已经正确安装了相关的依赖库。可以使用pip命令安装缺少的模块,比如在命令行中执行"pip install mmcv"来安装mmcv模块。 2. 检查您的打包配置文件是否正确配置了相关的依赖项。确保在打包过程中包含了所有需要的模块和文件。 3. 尝试使用不同的打包工具或者配置选项。有候不同的打包工具或者不同的配置选项可以解决一些特定的问题。 4. 如果以上方法都没有解决问题,您可以尝试在打包之前先运行一下您的代码,确保代码本身没有问题。如果代码可以正常运行,那么可能是打包过程中的一些配置问题导致的错误。 希望以上方法可以帮助您解决问题。如果问题仍然存在,请提供更多的详细信息,以便我们能够更好地帮助您解决问题。 #### 引用[.reference_title] - *1* [python 源码运行正常,pyinstaller打包运行报错ModuleNotFoundError: No module named ‘mmcv._ext‘,...](https://blog.csdn.net/gc5218112/article/details/125172123)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [python pyinstaller打包执行文件 运行报错ModuleNotFoundError: No module named ‘setuptools._distutils...](https://blog.csdn.net/whatday/article/details/127095387)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值