我使用Ubuntu 16.04导入Python(3.5.2)时会收到分段故障。例如,以下代码产生分段故障:
import PyQt4.QtCore
我想有一些模块安装的错配置...这是backtrace:
Program received signal SIGSEGV, Segmentation fault.
0x000000000055c220 in PyType_IsSubtype ()
(gdb) backtrace
#0 0x000000000055c220 in PyType_IsSubtype ()
#1 0x00007ffff4969221 in vp_convertor () from /usr/local/lib/python3.5/dist-packages/sip.so
#2 0x00007ffff4969ab5 in sip_api_convert_to_void_ptr () from /usr/local/lib/python3.5/dist-packages/sip.so
#3 0x00007ffff5f41b7d in ?? () from /usr/lib/python3/dist-packages/PyQt4/QtCore.cpython-35m-x86_64-linux-gnu.so
#4 0x00007ffff5e1eb54 in PyInit_QtCore () from /usr/lib/python3/dist-packages/PyQt4/QtCore.cpython-35m-x86_64-linux-gnu.so
#5 0x000000000060605e in _PyImport_LoadDynamicModuleWithSpec ()
#6 0x0000000000606618 in ?? ()
#7 0x00000000004e9c56 in PyCFunction_Call ()
#8 0x000000000052ad74 in PyEval_EvalFrameEx ()
#9 0x000000000052d2e3 in ?? ()
#10 0x0000000000529332 in PyEval_EvalFrameEx ()
#11 0x0000000000528814 in PyEval_EvalFrameEx ()
#12 0x0000000000528814 in PyEval_EvalFrameEx ()
#13 0x0000000000528814 in PyEval_EvalFrameEx ()
#14 0x0000000000528814 in PyEval_EvalFrameEx ()
#15 0x000000000052e12b in PyEval_EvalCodeEx ()
#16 0x00000000004ebcc3 in ?? ()
#17 0x00000000005b7167 in PyObject_Call ()
#18 0x00000000005b7f8a in _PyObject_CallMethodIdObjArgs ()
#19 0x000000000051ba98 in PyImport_ImportModuleLevelObject ()
#20 0x00000000005c7688 in ?? ()
#21 0x00000000004e9bc7 in PyCFunction_Call ()
#22 0x00000000005b7167 in PyObject_Call ()
#23 0x0000000000523800 in PyEval_CallObjectWithKeywords ()
#24 0x0000000000526fbc in PyEval_EvalFrameEx ()
#25 0x000000000052d2e3 in ?? ()
#26 0x000000000052dfdf in PyEval_EvalCode ()
#27 0x00000000005fd2c2 in ?? ()
#28 0x00000000005ff76a in PyRun_FileExFlags ()
#29 0x00000000005ff95c in PyRun_SimpleFileExFlags ()
#30 0x000000000063e7d6 in Py_Main ()
#31 0x00000000004cfe41 in main ()
您对如何解决问题有任何想法吗?
- SIP版本为4.19.3
- pyqt5版本是5.9可能是问题吗?
预先感谢!
我今天也遇到了这个问题。我的Python 3和PIP来自包装经理。但是我然后由get-pip.py
安装了较新的PIP。
从我从gdb
获得的StackTrace中,似乎也许有一个替代的SIP库(尽管我正在使用Python 3.6):
/usr/local/lib/python3.6/dist-packages/sip.so
和
/usr/lib/python3/dist-packages/sip.cpython-36m-x86_64-linux-gnu.so
。
我通过您提供的以下代码进行了测试。如果我在/usr/local/lib
中删除了.so
,则不会抱怨。相反,分割故障消失了。