问题 PyCharm调试分段故障(信号11)


在PyCharm(社区版2016.2.3)中,使用anaconda2 + ubuntu 14.04, import matplotlib 在调试模式期间导致信号11错误。在发布模式下执行脚本时没有问题。

python代码:

import matplotlib as pt

调试控制台:

连接到pydev调试器(build 162.1967.10)   GLib-GIO-Message:使用'内存'GSettings后端。您的设置不会保存或与其他应用程序共享。   后端Qt4Agg是交互式后端。打开交互模式。

进程以退出代码139结束(由信号11中断:SIGSEGV)


11730
2017-10-23 13:40


起源

我们遇到了这个问题。你能解决吗? - Fabzi


答案:


我有相同的错误消息。我删除了anaconda并安装了miniconda而重新安装了pycharm。当我运行python控制台以及调试控制台时,退出代码139都出现了。

现在当我导入matplotlib时,我仍然收到消息:

后端Qt4Agg是交互式后端。打开交互模式。

GLib-GIO-Message:使用'内存'GSettings后端。您的设置不会保存或与其他应用程序共享。

我想这不太理想,但我没有得到退出代码,一切似乎都有效。这是一个解决方案,但必须有一个更健壮的方式。


0
2017-11-08 09:34





有点晚,但它可能会帮助一些googler。

Qt会导致这个问题。 PyCharm默认使用--qt-support = auto运行。 如果安装了Qt4和Qt5的python绑定,则auto函数可能无法选择正确的Qt版本。 尝试在PyCharm设置中设置正确的Qt绑定(Build,Ex ... - > Python Debugger - PyQt Compatible)

从Auto到PyQt4的设置在conda环境中为我工作,没有删除任何东西。


6
2017-10-09 09:01





通过在PyCharm设置(Build,Ex ... - > Python Debugger)中解开Qt框,我设法摆脱了段错误和代码139。 我的使用场景:使用远程解释器运行一些代码。需要matplotlib只是为了一些数字。


3
2017-10-27 16:44





我删除pyqt5绑定后,我的工作。

sudo apt-get remove python3-pyqt5


2
2017-07-19 18:53





快速而肮脏的解决方法是将Qt后端切换为另一个后端。例如,在导入Matplotlib后立即添加:

matplotlib.use('TkAgg')

你可能想要使用另一个 可用的后端

如果您有各种具有Matplotlib依赖关系的模块,并且您不想污染您的代码,或者如果您在团队中,那么最好更改您的后端 matplotlibrc。你可以找到你正在使用的matplotlibrc:

import matplotlib
print(matplotlib.matplotlib_fname())

2
2017-07-12 18:57





我的情况是由于熊猫包。可能它是在线程中进行数据帧(不支持?!)。

要找到您的原因,请执行以下操作:

gdb python
(gdb) script.py

(当它崩溃时)

where

这将显示堆栈跟踪。在我的情况下,numpy中丢失的文件,修复者:

pip install --upgrade pandas


1
2017-09-14 21:39





导入matplotlib

然后用这句话...... matplotlib.use( 'TkAgg')


1
2017-08-01 07:29



这已作为答案提供: stackoverflow.com/a/51312698/8881141 - Mr. T