进程已完成,退出代码为-1073740791(0xC0000409)STATUS_STACK_BUFFER_OVERRUN

问题描述 投票:0回答:5

我在 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:
python tensorflow pycharm
5个回答
4
投票

通过安装 pyqt 解决了这个问题。我使用命令(来自 conda-forge)安装了 pyqt

conda install -c conda-forge pyqt

1
投票

就我而言,它是过时的 pyqt 库。以下内容对我有用。

conda安装-c anaconda pyqt


0
投票

问题并非来自PyCharm,如果使用其他IDE,结果也是一样的。事实上,他们都使用一个名为

pydev
的包来调试。最好的选择是创建一个全新的 Python 环境(PyCharm 有此功能)并逐步安装软件包。

如果解决方案有效,并且您可以找出哪个包与

pydev
冲突,这将是最有帮助的。


0
投票

我遇到了同样的错误并遇到了这个问题,但出于不同的原因,我想提出这个原因,以防其他人面临同样的情况。正如其他答案中提到的,我已经安装了

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提到的相同错误。


0
投票

还有一个答案

我创建了一个由 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()
© www.soinside.com 2019 - 2024. All rights reserved.