Failed to execute script Main

本文讲述了作者在使用PyCharm打包Python程序时遇到的PyQt5.sip模块缺失问题,通过卸载并重新安装PyQt5解决了打包后的.exe文件无法运行的问题,分享了解决步骤和推荐的模块下载资源。
部署运行你感兴趣的模型镜像

项目场景:python

解决pycharm中打包程序的错误


问题描述:打包后显示成功,但是不能使用

今天讲述一下本人被一个问题折磨了整整三天的艰苦历程。
基于python和PyQt5写了一个串口调试助手的小程序,在打包程序的过程中出现了以下的错误。首先安装pyinstaller ,命令如下,

        pip install pyinstaller 
命令框显示成功,但是.eve文件不能运行,提示Failed to execute script Main,(Main为我的主文件名)。提示No module named 'PyQt5.sip',

原因分析:缺少模块

提示没有PyQt5.sip这个模块,可能是因为源代码没有导入sip这个模块,因此在源代码中加入了sip模块。程序如下


 from PyQt5 import sip

这里显示sip导入,但是没有被使用。但仍然进行了一次打包,问题依然没有被解决。在这里插入图片描述
pycharm可以打包程序,但是.exe文件不能运行,所以原因一定在PyQt5这个模块上


解决方案:卸载PyQt5模块,并重新安装

于是卸载PyQt5模块,并重新安装。

步骤一:打开File中的settings选项后,选中Project InterPreter,最后 选择PyQt5后,点减号(-)。如图:在这里插入图片描述
这样就成功卸载。

步骤二:重新安装PyQt5,点击减号旁边的加号后在搜索栏中搜索PyQt5后,点击install Package,安装即可。在这里插入图片描述
这样就可以重新打包程序,本人亲测有效,希望能帮助小伙伴解决问题,谢谢!

另外推荐给大家一个下载网址,方便大家快速下载。(点击Manage Repositories即可修改)。

https://pypi.tuna.tsinghua.edu.cn/simple/

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

由于未提供与脚本 `main_window` 执行失败相关的具体信息,难以直接给出针对性解决方案。不过可从以下通用方面进行排查和解决: - **权限问题**:若脚本需要特定权限才能执行,可参考增强 `.bat` 脚本可靠性中的权限设置方法,确保脚本在最高权限下运行。如在 `.bat` 脚本里添加以下代码,请求管理员权限: ```batch NET FILE > NUL 2>&1 IF %ERRORLEVEL% EQU 0 ( echo 已在管理员权限下运行 ) ELSE ( echo 请求管理员权限... powershell Start-Process "%~f0" -Verb RunAs exit /b ) ``` - **编码问题**:若脚本涉及中文等字符,可更改代码页为 UTF - 8 以支持,在 `.bat` 脚本中使用 `chcp 65001` 来设置 [^1]。 - **依赖问题**:若 `main_window` 脚本依赖 Python 或其他程序,要确保 Python 解释器正确配置,安装所有缺失的依赖包,且运行路径正确。若使用 Python 执行,需使用 `python main.py` 这种正确方式执行 [^2]。 - **安全策略问题**:若脚本运行于类似 Electron 的环境,可参考 `main.js` 的解决方案,加入 `webSecurity: false` 并自定义 `file:///` 协议的解析。示例代码如下: ```javascript import { app, BrowserWindow, ipcMain, protocol } from 'electron' function createWindow () { /** * Initial window options */ mainWindow = new BrowserWindow({ height: 768, useContentSize: true, width: 1300, webPreferences:{ webSecurity: false, //========关闭安全策略=========== nodeIntegration: true, } }) //===========自定义file:///协议的解析======================= protocol.interceptFileProtocol('file', (req, callback) => { const url = req.url.substr(8); callback(decodeURI(url)); }, (error) => { if (error) { console.error('Failed to register protocol'); } }); } app.on('ready', createWindow) ``` - **VSCode 相关**:若在 VSCode 中执行脚本失败,可尝试重启 VSCode,重新加载窗口(按下 `Ctrl + Shift + P`,输入 `Reload Window` 并选择) [^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值