我在 PyCharm 中创建了一个纯
Python
项目,并导入了 numpy
、tensorflow
和 opencv
来测试一个小程序。
所有软件包都更新到最新版本。我的
Python
版本是3.6.4
,我正在Windows x64
上运行。我已浏览了相关线程上建议更新 NVIDIA
驱动程序的所有解决方案,但我有一个 Intel
驱动程序。
我是
Python
、Tensorflow
和 Pycharm
的新手。
这是记录的错误:
Faulting application name: python.exe, version: 3.6.4150.1013, time stamp: 0x5a38b889
Faulting module name: ucrtbase.dll, version: 10.0.16299.248, time stamp: 0xe71e5dfe
Exception code: 0xc0000409
Fault offset: 0x000000000006b79e
Faulting process ID: 0x4004
Faulting application start time: 0x01d3c1ef8a3d751c
Faulting application path: C:\Users\xtr\Test\TfLayers\Scripts\python.exe
Faulting module path: C:\WINDOWS\System32\ucrtbase.dll
Report ID: e96d98cb-28c9-4340-bcd3-a7033d4b4972
Faulting package full name:
Faulting package-relative application ID:
通过安装 pyqt 解决了这个问题。我使用命令(来自 conda-forge)安装了 pyqt
conda install -c conda-forge pyqt
就我而言,它是过时的 pyqt 库。以下内容对我有用。
conda安装-c anaconda pyqt
问题并非来自PyCharm,如果使用其他IDE,结果也是一样的。事实上,他们都使用一个名为
pydev
的包来调试。最好的选择是创建一个全新的 Python 环境(PyCharm 有此功能)并逐步安装软件包。
如果解决方案有效,并且您可以找出哪个包与
pydev
冲突,这将是最有帮助的。
我遇到了同样的错误并遇到了这个问题,但出于不同的原因,我想提出这个原因,以防其他人面临同样的情况。正如其他答案中提到的,我已经安装了
pyqt
。但是,为了确定,根据不言而喻的“你尝试重新启动吗”原则,我在我的 pyqt
环境中重新安装了 conda
和 PyQt5
(还有 PyQt6
) - 通过 pip
安装的 bot PyQts。
不知道为什么,遗憾的是我没有时间调试它,但是
PyQt6
是我的代码中有问题的部分(我正在第一次尝试)。我的最小测试代码如下,包括两个用 v1
和 v2
表示的颠覆。我希望这部分是显而易见的:
from PyQt6.QtWidgets import QApplication, QWidget # v1
# from PyQt5.QtWidgets import QApplication, QWidget # v2
import sys
q = QApplication(sys.argv)
w = QWidget()
w.show() # in debug mode, ran ok till here (?)
sys.exit(q.exec()) # for `v1` from above
# sys.exit(q.exec_()) # for `v2` from above
代码变体
v2
正在工作,而v1
抛出OP提到的相同错误。
还有一个答案
我创建了一个由 QThread 继承的对象并启动线程,但没有将对象保存为对象变量 当在调试模式下启动时一切正常,当在没有调试的情况下启动时,程序崩溃,代码为-1073740791(0xC0000409)
之前
def showEvent(self, event):
super().showEvent(event)
thread = QThreadWithSignal(self.__upload)
thread.signal.connect(self.__show_error_message)
thread.start()
之后
def showEvent(self, event):
super().showEvent(event)
self.thread = QThreadWithSignal(self.__upload)
self.thread.signal.connect(self.__show_error_message)
self.thread.start()