【小技巧】PyCharm建立项目,VScode+CodeX+WindowsPowerShell开发Python pyQT6

运行程序后,窗口如图;但是闪退。报错如下。C:\Users\CQJY\Desktop\PythonProject.venv\Scripts\python.exe C:\Users\CQJY\Desktop\PythonProject\main.py 进程已结束,退出代码为 -1073740791 (0xC0000409)

现在这个新报错:
程序“python.exe”无法运行: 指定的可执行文件不是此操作系统平台的有效应用程序。
几乎可以肯定是 .venv\Scripts\python.exe 被破坏/替换(或和基准 Python 不一致)。之前它还能跑、能弹 “Qt ok”,说明不是系统位数问题,而是后来 venv 里的 python.exe 损坏了(最常见是误用 Set-Content、杀毒拦截/隔离、或复制覆盖)。
按下面做,最快恢复:
A. 对比一下:venv 的 python.exe 是否异常
# 在项目根
cd C:\Users\CQJY\Desktop\PythonProject# 看大小与版本信息
(Get-Item .\.venv\Scripts\python.exe).Length
(Get-Item .\.venv\Scripts\python.exe).VersionInfo | fl ProductVersion,FileVersion# 与基准 Python 对比(应接近相同)
(Get-Item "C:\Users\CQJY\AppData\Local\Programs\Python\Python313\python.exe").Length
如果 venv 里的体积很小/为 0 或与基准差异巨大,就是被破坏了。
B. 直接重建 .venv(最稳妥)
# 关掉 PyCharm,避免占用 .venv
cd C:\Users\CQJY\Desktop\PythonProject
Remove-Item -Recurse -Force .\.venv# 用你已安装的 3.13/64 重建
py -3.13 -m venv .venv# 快速自检
.\.venv\Scripts\python.exe -V
.\.venv\Scripts\python.exe -c "import struct,platform;print('arch=',struct.calcsize('P')*8,'os=',platform.platform())"# 重新装依赖
.\.venv\Scripts\python.exe -m pip install -U pip
.\.venv\Scripts\python.exe -m pip install PyQt6 pyserial # 串口建议用 pyserial,更稳
⚠️ 小心别再对可执行文件用
Set-Content、Out-File等命令;这些会把二进制覆盖成文本,立刻变成“不是有效应用程序”。
C. 再做一次最小自检(确保 PyQt 正常)
$probe = @'
from PyQt6.QtWidgets import QApplication, QWidget
import sys
app = QApplication(sys.argv)
w = QWidget(); w.setWindowTitle("probe"); w.show()
print("Qt ok")
sys.exit(app.exec())
'@
Set-Content -Path .\_qt_probe.py -Value $probe -Encoding UTF8
.\.venv\Scripts\python.exe .\_qt_probe.py
D. 跑你的项目前,记得修掉上一个 PyQt6 兼容问题
你之前的异常在:
ui\widgets.py:177 -> self.moveCursor(self.textCursor().End)
改为:
from PyQt6.QtGui import QTextCursor
self.moveCursor(QTextCursor.MoveOperation.End)
# 或:
cur = self.textCursor()
cur.movePosition(QTextCursor.MoveOperation.End)
self.setTextCursor(cur)
self.ensureCursorVisible()
然后再跑:
.\.venv\Scripts\python.exe .\main.py

E. 仍有问题?两个应急方案
-
用基准 Python 直跑(验证是否仅 venv 问题)
"C:\Users\CQJY\AppData\Local\Programs\Python\Python313\python.exe" .\main.py如果缺包,就在 venv 中
pip freeze > requirements.txt,然后对基准环境pip install -r requirements.txt --user(临时验证用)。 -
重装一次基准 Python 3.13(64-bit)
基准被杀软拦截/损坏时,重装可一并修复,之后再重建.venv。
一句话总结
- 这次是
.venv\Scripts\python.exe被破坏 导致的“不是有效应用程序”。 - 删除
.venv→ 重建 → 重新装依赖 就能恢复;随后把上次的 QTextCursor 写法改掉,程序应能正常运行。 - 以后只对 .py 文件 用
Set-Content;不要对.exe/.dll之类二进制用这些命令。
