Bug 397264 - Cantor crashes with Python 2 backend when importing matplotlib.pyplot
Summary: Cantor crashes with Python 2 backend when importing matplotlib.pyplot
Status: RESOLVED FIXED
Alias: None
Product: cantor
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Arch Linux Linux
: NOR crash
Target Milestone: ---
Assignee: Nikita Sirgienko
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2018-08-08 08:21 UTC by Savor d'Isavano
Modified: 2019-07-05 02:28 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed In: 19.08


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Savor d'Isavano 2018-08-08 08:21:01 UTC
Application: cantor (18.04.3)

Qt Version: 5.11.1
Frameworks Version: 5.48.0
Operating System: Linux 4.17.11-arch1 x86_64
Distribution: "Arch Linux"

-- Information about the crash:
- What I was doing when the application crashed:

I simply started a Python 2 session and input one line of code:

```python
import matplotlib.pyplot as plt
```

Cantor instantly crashed.

The crash can be reproduced every time.

-- Backtrace:
Application: Cantor (cantor), signal: Aborted
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f9e766db140 (LWP 12048))]

Thread 4 (Thread 0x7f9e5efc3700 (LWP 12051)):
#0  0x00007f9e7da8eaec in pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib/libpthread.so.0
#1  0x00007f9e5fbe31a4 in ?? () from /usr/lib/dri/i965_dri.so
#2  0x00007f9e5fbe2e98 in ?? () from /usr/lib/dri/i965_dri.so
#3  0x00007f9e7da88a8d in start_thread () from /usr/lib/libpthread.so.0
#4  0x00007f9e812bd823 in clone () from /usr/lib/libc.so.6

Thread 3 (Thread 0x7f9e69709700 (LWP 12050)):
#0  0x00007f9e7bcfa030 in g_ptr_array_set_size () from /usr/lib/libglib-2.0.so.0
#1  0x00007f9e7bd2793a in g_main_context_prepare () from /usr/lib/libglib-2.0.so.0
#2  0x00007f9e7bd2844e in ?? () from /usr/lib/libglib-2.0.so.0
#3  0x00007f9e7bd2863e in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#4  0x00007f9e817f4054 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#5  0x00007f9e8179f94c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#6  0x00007f9e815e8a99 in QThread::exec() () from /usr/lib/libQt5Core.so.5
#7  0x00007f9e7e130976 in ?? () from /usr/lib/libQt5DBus.so.5
#8  0x00007f9e815f2b45 in ?? () from /usr/lib/libQt5Core.so.5
#9  0x00007f9e7da88a8d in start_thread () from /usr/lib/libpthread.so.0
#10 0x00007f9e812bd823 in clone () from /usr/lib/libc.so.6

Thread 2 (Thread 0x7f9e72e0c700 (LWP 12049)):
#0  0x00007f9e812b2991 in poll () from /usr/lib/libc.so.6
#1  0x00007f9e7babf180 in ?? () from /usr/lib/libxcb.so.1
#2  0x00007f9e7bac0e4b in xcb_wait_for_event () from /usr/lib/libxcb.so.1
#3  0x00007f9e75bbb22a in ?? () from /usr/lib/libQt5XcbQpa.so.5
#4  0x00007f9e815f2b45 in ?? () from /usr/lib/libQt5Core.so.5
#5  0x00007f9e7da88a8d in start_thread () from /usr/lib/libpthread.so.0
#6  0x00007f9e812bd823 in clone () from /usr/lib/libc.so.6

Thread 1 (Thread 0x7f9e766db140 (LWP 12048)):
[KCrash Handler]
#6  0x00007f9e811f9b5f in raise () from /usr/lib/libc.so.6
#7  0x00007f9e811e4452 in abort () from /usr/lib/libc.so.6
#8  0x00007f9e815af33c in QMessageLogger::fatal(char const*, ...) const () from /usr/lib/libQt5Core.so.5
#9  0x00007f9e815c261b in ?? () from /usr/lib/libQt5Core.so.5
#10 0x00007f9e817b76e8 in QMetaType::registerType(char const*, void (*)(void*), void* (*)(void const*), void (*)(void*), void* (*)(void*, void const*), int, QFlags<QMetaType::TypeFlag>, QMetaObject const*) () from /usr/lib/libQt5Core.so.5
#11 0x00007f9e817b776f in QMetaType::registerType(char const*, void (*)(void*), void* (*)(void const*)) () from /usr/lib/libQt5Core.so.5
#12 0x00007f9e42bf50ae in ?? () from /usr/lib/python2.7/site-packages/PySide/QtCore.so
#13 0x00007f9e42bc01c3 in initQtCore () from /usr/lib/python2.7/site-packages/PySide/QtCore.so
#14 0x00007f9e57b2b520 in _PyImport_LoadDynamicModule () from /usr/lib/libpython2.7.so.1.0
#15 0x00007f9e57ad504e in import_submodule () from /usr/lib/libpython2.7.so.1.0
#16 0x00007f9e57b2b987 in ensure_fromlist.part () from /usr/lib/libpython2.7.so.1.0
#17 0x00007f9e57ad5fd4 in PyImport_ImportModuleLevel () from /usr/lib/libpython2.7.so.1.0
#18 0x00007f9e57adc22a in builtin___import__.lto_priv.1313 () from /usr/lib/libpython2.7.so.1.0
#19 0x00007f9e57a3e0e3 in PyObject_Call () from /usr/lib/libpython2.7.so.1.0
#20 0x00007f9e57af47d1 in PyEval_CallObjectWithKeywords () from /usr/lib/libpython2.7.so.1.0
#21 0x00007f9e57a9d8a8 in PyEval_EvalFrameEx () from /usr/lib/libpython2.7.so.1.0
#22 0x00007f9e57a9a9d0 in PyEval_EvalFrameEx () from /usr/lib/libpython2.7.so.1.0
#23 0x00007f9e57a9a9d0 in PyEval_EvalFrameEx () from /usr/lib/libpython2.7.so.1.0
#24 0x00007f9e57af50da in PyEval_EvalCodeEx () from /usr/lib/libpython2.7.so.1.0
#25 0x00007f9e57b1430a in PyEval_EvalCode () from /usr/lib/libpython2.7.so.1.0
#26 0x00007f9e57b2afb1 in PyImport_ExecCodeModuleEx () from /usr/lib/libpython2.7.so.1.0
#27 0x00007f9e57b2b19a in load_source_module () from /usr/lib/libpython2.7.so.1.0
#28 0x00007f9e57b2bb9f in load_package () from /usr/lib/libpython2.7.so.1.0
#29 0x00007f9e57ad504e in import_submodule () from /usr/lib/libpython2.7.so.1.0
#30 0x00007f9e57ad5bd4 in PyImport_ImportModuleLevel () from /usr/lib/libpython2.7.so.1.0
#31 0x00007f9e57adc22a in builtin___import__.lto_priv.1313 () from /usr/lib/libpython2.7.so.1.0
#32 0x00007f9e57a3e0e3 in PyObject_Call () from /usr/lib/libpython2.7.so.1.0
#33 0x00007f9e57af47d1 in PyEval_CallObjectWithKeywords () from /usr/lib/libpython2.7.so.1.0
#34 0x00007f9e57a9d8a8 in PyEval_EvalFrameEx () from /usr/lib/libpython2.7.so.1.0
#35 0x00007f9e57af50da in PyEval_EvalCodeEx () from /usr/lib/libpython2.7.so.1.0
#36 0x00007f9e57b1430a in PyEval_EvalCode () from /usr/lib/libpython2.7.so.1.0
#37 0x00007f9e57b2afb1 in PyImport_ExecCodeModuleEx () from /usr/lib/libpython2.7.so.1.0
#38 0x00007f9e57b2b19a in load_source_module () from /usr/lib/libpython2.7.so.1.0
#39 0x00007f9e57ad504e in import_submodule () from /usr/lib/libpython2.7.so.1.0
#40 0x00007f9e57ad60c1 in PyImport_ImportModuleLevel () from /usr/lib/libpython2.7.so.1.0
#41 0x00007f9e57adc22a in builtin___import__.lto_priv.1313 () from /usr/lib/libpython2.7.so.1.0
#42 0x00007f9e57a3e0e3 in PyObject_Call () from /usr/lib/libpython2.7.so.1.0
#43 0x00007f9e57af47d1 in PyEval_CallObjectWithKeywords () from /usr/lib/libpython2.7.so.1.0
#44 0x00007f9e57a9d8a8 in PyEval_EvalFrameEx () from /usr/lib/libpython2.7.so.1.0
#45 0x00007f9e57af50da in PyEval_EvalCodeEx () from /usr/lib/libpython2.7.so.1.0
#46 0x00007f9e57b1430a in PyEval_EvalCode () from /usr/lib/libpython2.7.so.1.0
#47 0x00007f9e57b2afb1 in PyImport_ExecCodeModuleEx () from /usr/lib/libpython2.7.so.1.0
#48 0x00007f9e57b2b19a in load_source_module () from /usr/lib/libpython2.7.so.1.0
#49 0x00007f9e57ad504e in import_submodule () from /usr/lib/libpython2.7.so.1.0
#50 0x00007f9e57ad61b4 in PyImport_ImportModuleLevel () from /usr/lib/libpython2.7.so.1.0
#51 0x00007f9e57adc22a in builtin___import__.lto_priv.1313 () from /usr/lib/libpython2.7.so.1.0
#52 0x00007f9e57a3e0e3 in PyObject_Call () from /usr/lib/libpython2.7.so.1.0
#53 0x00007f9e57af47d1 in PyEval_CallObjectWithKeywords () from /usr/lib/libpython2.7.so.1.0
#54 0x00007f9e57a9d8a8 in PyEval_EvalFrameEx () from /usr/lib/libpython2.7.so.1.0
#55 0x00007f9e57af50da in PyEval_EvalCodeEx () from /usr/lib/libpython2.7.so.1.0
#56 0x00007f9e57b1430a in PyEval_EvalCode () from /usr/lib/libpython2.7.so.1.0
#57 0x00007f9e57b2afb1 in PyImport_ExecCodeModuleEx () from /usr/lib/libpython2.7.so.1.0
#58 0x00007f9e57b2b19a in load_source_module () from /usr/lib/libpython2.7.so.1.0
#59 0x00007f9e57ad504e in import_submodule () from /usr/lib/libpython2.7.so.1.0
#60 0x00007f9e57ad61b4 in PyImport_ImportModuleLevel () from /usr/lib/libpython2.7.so.1.0
#61 0x00007f9e57adc22a in builtin___import__.lto_priv.1313 () from /usr/lib/libpython2.7.so.1.0
#62 0x00007f9e57a3e0e3 in PyObject_Call () from /usr/lib/libpython2.7.so.1.0
#63 0x00007f9e57af47d1 in PyEval_CallObjectWithKeywords () from /usr/lib/libpython2.7.so.1.0
#64 0x00007f9e57a9d8a8 in PyEval_EvalFrameEx () from /usr/lib/libpython2.7.so.1.0
#65 0x00007f9e57af50da in PyEval_EvalCodeEx () from /usr/lib/libpython2.7.so.1.0
#66 0x00007f9e57b1430a in PyEval_EvalCode () from /usr/lib/libpython2.7.so.1.0
#67 0x00007f9e57b2afb1 in PyImport_ExecCodeModuleEx () from /usr/lib/libpython2.7.so.1.0
#68 0x00007f9e57b2b19a in load_source_module () from /usr/lib/libpython2.7.so.1.0
#69 0x00007f9e57ad504e in import_submodule () from /usr/lib/libpython2.7.so.1.0
#70 0x00007f9e57ad5bd4 in PyImport_ImportModuleLevel () from /usr/lib/libpython2.7.so.1.0
#71 0x00007f9e57adc22a in builtin___import__.lto_priv.1313 () from /usr/lib/libpython2.7.so.1.0
#72 0x00007f9e57a3e0e3 in PyObject_Call () from /usr/lib/libpython2.7.so.1.0
#73 0x00007f9e57af47d1 in PyEval_CallObjectWithKeywords () from /usr/lib/libpython2.7.so.1.0
#74 0x00007f9e57a9d8a8 in PyEval_EvalFrameEx () from /usr/lib/libpython2.7.so.1.0
#75 0x00007f9e57af50da in PyEval_EvalCodeEx () from /usr/lib/libpython2.7.so.1.0
#76 0x00007f9e57b1430a in PyEval_EvalCode () from /usr/lib/libpython2.7.so.1.0
#77 0x00007f9e57b2afb1 in PyImport_ExecCodeModuleEx () from /usr/lib/libpython2.7.so.1.0
#78 0x00007f9e57b2b19a in load_source_module () from /usr/lib/libpython2.7.so.1.0
#79 0x00007f9e57ad504e in import_submodule () from /usr/lib/libpython2.7.so.1.0
#80 0x00007f9e57ad60c1 in PyImport_ImportModuleLevel () from /usr/lib/libpython2.7.so.1.0
#81 0x00007f9e57adc22a in builtin___import__.lto_priv.1313 () from /usr/lib/libpython2.7.so.1.0
#82 0x00007f9e57a9a3a9 in PyEval_EvalFrameEx () from /usr/lib/libpython2.7.so.1.0
#83 0x00007f9e57af50da in PyEval_EvalCodeEx () from /usr/lib/libpython2.7.so.1.0
#84 0x00007f9e57a9f97f in PyEval_EvalFrameEx () from /usr/lib/libpython2.7.so.1.0
#85 0x00007f9e57af50da in PyEval_EvalCodeEx () from /usr/lib/libpython2.7.so.1.0
#86 0x00007f9e57b1430a in PyEval_EvalCode () from /usr/lib/libpython2.7.so.1.0
#87 0x00007f9e57b2afb1 in PyImport_ExecCodeModuleEx () from /usr/lib/libpython2.7.so.1.0
#88 0x00007f9e57b2b19a in load_source_module () from /usr/lib/libpython2.7.so.1.0
#89 0x00007f9e57ad504e in import_submodule () from /usr/lib/libpython2.7.so.1.0
#90 0x00007f9e57ad5eb3 in PyImport_ImportModuleLevel () from /usr/lib/libpython2.7.so.1.0
#91 0x00007f9e57adc22a in builtin___import__.lto_priv.1313 () from /usr/lib/libpython2.7.so.1.0
#92 0x00007f9e57a3e0e3 in PyObject_Call () from /usr/lib/libpython2.7.so.1.0
#93 0x00007f9e57af47d1 in PyEval_CallObjectWithKeywords () from /usr/lib/libpython2.7.so.1.0
#94 0x00007f9e57a9d8a8 in PyEval_EvalFrameEx () from /usr/lib/libpython2.7.so.1.0
#95 0x00007f9e57af50da in PyEval_EvalCodeEx () from /usr/lib/libpython2.7.so.1.0
#96 0x00007f9e57b1430a in PyEval_EvalCode () from /usr/lib/libpython2.7.so.1.0
#97 0x00007f9e57b1fa81 in run_mod () from /usr/lib/libpython2.7.so.1.0
#98 0x00007f9e57b215d6 in PyRun_StringFlags () from /usr/lib/libpython2.7.so.1.0
#99 0x00007f9e57b2163f in PyRun_SimpleStringFlags () from /usr/lib/libpython2.7.so.1.0
#100 0x00007f9e57dfb4a1 in ?? () from /usr/lib/qt/plugins/cantor/backends/cantor_python2backend.so
#101 0x00007f9e5779f82d in PythonSession::getPythonCommandOutput(QString const&) () from /usr/lib/libcantor_pythonbackend.so
#102 0x00007f9e5779f9cb in PythonSession::identifyKeywords(QString const&) () from /usr/lib/libcantor_pythonbackend.so
#103 0x00007f9e577a150e in PythonSession::runExpression(PythonExpression*) () from /usr/lib/libcantor_pythonbackend.so
#104 0x00007f9e577a389b in ?? () from /usr/lib/libcantor_pythonbackend.so
#105 0x00007f9e5779e29b in PythonSession::evaluateExpression(QString const&, Cantor::Expression::FinishingBehavior) () from /usr/lib/libcantor_pythonbackend.so
#106 0x00007f9e52dbde0e in ?? () from /usr/lib/qt/plugins/libcantorpart.so
#107 0x00007f9e52ddaf85 in ?? () from /usr/lib/qt/plugins/libcantorpart.so
#108 0x00007f9e817caafc in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQt5Core.so.5
#109 0x00007f9e8250e273 in QAction::triggered(bool) () from /usr/lib/libQt5Widgets.so.5
#110 0x00007f9e8251096a in QAction::activate(QAction::ActionEvent) () from /usr/lib/libQt5Widgets.so.5
#111 0x00007f9e82511275 in QAction::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#112 0x00007f9e82514a74 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#113 0x00007f9e8251c341 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#114 0x00007f9e817a0cb9 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#115 0x00007f9e81d72945 in QShortcutMap::dispatchEvent(QKeyEvent*) () from /usr/lib/libQt5Gui.so.5
#116 0x00007f9e81d72a23 in QShortcutMap::tryShortcut(QKeyEvent*) () from /usr/lib/libQt5Gui.so.5
#117 0x00007f9e81d2699c in QWindowSystemInterface::handleShortcutEvent(QWindow*, unsigned long, int, QFlags<Qt::KeyboardModifier>, unsigned int, unsigned int, unsigned int, QString const&, bool, unsigned short) () from /usr/lib/libQt5Gui.so.5
#118 0x00007f9e81d4354e in QGuiApplicationPrivate::processKeyEvent(QWindowSystemInterfacePrivate::KeyEvent*) () from /usr/lib/libQt5Gui.so.5
#119 0x00007f9e81d48dd6 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () from /usr/lib/libQt5Gui.so.5
#120 0x00007f9e81d22b7c in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Gui.so.5
#121 0x00007f9e75c5072d in ?? () from /usr/lib/libQt5XcbQpa.so.5
#122 0x00007f9e8179f94c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#123 0x00007f9e817a7c46 in QCoreApplication::exec() () from /usr/lib/libQt5Core.so.5
#124 0x000055ce10abea0c in ?? ()
#125 0x00007f9e811e6003 in __libc_start_main () from /usr/lib/libc.so.6
#126 0x000055ce10abeeca in _start ()

Reported using DrKonqi
Comment 1 Alexander Semke 2018-08-08 16:18:41 UTC
The error seems to come from PySide/QtCore.so. I cannot reproduce this problem here on openSuse. Does this import step works for when using python2 directly in the terminal?
Comment 2 Nikita Sirgienko 2018-08-08 16:43:53 UTC
Also can't reproduce it, works on my Ubuntu 18.04 and python2.7.15rc1
Comment 3 Savor d'Isavano 2018-08-09 09:46:03 UTC
(In reply to Alexander Semke from comment #1)
> The error seems to come from PySide/QtCore.so. I cannot reproduce this
> problem here on openSuse. Does this import step works for when using python2
> directly in the terminal?

Hi, it works:

Python 2.7.15 (default, Jun 27 2018, 13:05:28) 
[GCC 8.1.1 20180531] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import matplotlib.pyplot as plt
>>> plt
<module 'matplotlib.pyplot' from '/usr/lib/python2.7/site-packages/matplotlib/pyplot.pyc'>
>>> 

I'm running Arch and I have PySide2-5.11.0 and python-pyside-1.2.4 installed.

Also note that the Python 3 session does not crash when running the import statement, but if doing actual plotting the backend server process terminates while Cantor remains running. (I may open a separate issue for this, but IMHO this behavior is saner than crashing)
Comment 4 Alexander Semke 2018-08-27 06:58:21 UTC
(In reply to Savor d'Isavano from comment #3)
> Also note that the Python 3 session does not crash when running the import
> statement, but if doing actual plotting the backend server process
> terminates while Cantor remains running. (I may open a separate issue for
> this, but IMHO this behavior is saner than crashing)
This difference is because the python2 interpreter is embedded into the main process of Cantor whereas for python3 there is another external executable embedding the interpreter. When crashing, we crash the main process with python 2 and that another executable only for python3. But the problem will be the same for both cases. We need to understand why PySide is having problems on Arch linux.
Comment 5 Nikita Sirgienko 2018-08-27 17:15:15 UTC
Did you build Cantor byself?
Comment 6 Savor d'Isavano 2018-08-29 03:31:37 UTC
(In reply to Nikita Sirgienko from comment #5)
> Did you build Cantor byself?

No it's the binary package acquired from the Arch official repo, i.e. extra/cantor.
Comment 7 Alexander Semke 2019-04-20 07:12:05 UTC
Can you please re-test it again with the recent version of Cantor? We don't crash the main process also for python2 anymore in case the python interpreter crashes (Cantor > 18.12 required). Maybe also the problem with PySide on Arch was solved in-between.
Comment 8 Savor d'Isavano 2019-04-26 12:41:08 UTC
(In reply to Alexander Semke from comment #7)
> Can you please re-test it again with the recent version of Cantor? We don't
> crash the main process also for python2 anymore in case the python
> interpreter crashes (Cantor > 18.12 required). Maybe also the problem with
> PySide on Arch was solved in-between.

Hi. Python 2 sessions do not crash anymore. Python 3 will still complain about
'The name org.kde.Cantor.Python3-17062 was not provided by any .service files'.

calling plt.show() has no effect in either way.

I'm running Cantor 19.04.0.
Comment 9 vialav 2019-06-03 09:17:15 UTC
FYI: I'm running Cantor compiled from the commit on 31 May (19.07.70+git20190531), and it does have this problem.
Comment 10 vialav 2019-06-03 09:44:05 UTC
â€ĶI have mistyped my previous port, please read it as:

I'm running Cantor compiled from the commit on 31 May (19.07.70+git20190531), and it does NOT have this problem.
Comment 11 Nikita Sirgienko 2019-07-04 20:06:31 UTC
The problem have found: it is conflict between already loaded qt libraries (often from system installation) and qt libraries loading by PyQt5, when matplotlib import PyQt5 on pythons2server. When qt version of system and pyqt5 don't match, crash have been happening.
I will fix it in a day, or two.
Comment 12 Nikita Sirgienko 2019-07-04 21:50:49 UTC
Git commit 2329f29edc8d83b4823995a184ed454b580f0809 by Nikita Sirgienko.
Committed on 04/07/2019 at 21:45.
Pushed by sirgienko into branch 'master'.

[Python] Don't use Qt in pythonserver executable for avoding problems with PyQt5
Related: bug 407362
FIXED-IN: 19.08

M  +33   -33   src/backends/python/pythonserver.cpp
M  +11   -13   src/backends/python/pythonserver.h
M  +93   -95   src/backends/python/pythonservermain.cpp
M  +14   -2    src/backends/python/pythonsession.cpp
M  +1    -1    src/backends/python2/CMakeLists.txt
M  +1    -1    src/backends/python3/CMakeLists.txt

https://commits.kde.org/cantor/2329f29edc8d83b4823995a184ed454b580f0809
Comment 13 Savor d'Isavano 2019-07-05 02:28:49 UTC
(In reply to Nikita Sirgienko from comment #12)
> Git commit 2329f29edc8d83b4823995a184ed454b580f0809 by Nikita Sirgienko.
> Committed on 04/07/2019 at 21:45.
> Pushed by sirgienko into branch 'master'.
> 
> [Python] Don't use Qt in pythonserver executable for avoding problems with
> PyQt5
> Related: bug 407362
> FIXED-IN: 19.08
> 
> M  +33   -33   src/backends/python/pythonserver.cpp
> M  +11   -13   src/backends/python/pythonserver.h
> M  +93   -95   src/backends/python/pythonservermain.cpp
> M  +14   -2    src/backends/python/pythonsession.cpp
> M  +1    -1    src/backends/python2/CMakeLists.txt
> M  +1    -1    src/backends/python3/CMakeLists.txt
> 
> https://commits.kde.org/cantor/2329f29edc8d83b4823995a184ed454b580f0809

(In reply to Nikita Sirgienko from comment #11)
> The problem have found: it is conflict between already loaded qt libraries
> (often from system installation) and qt libraries loading by PyQt5, when
> matplotlib import PyQt5 on pythons2server. When qt version of system and
> pyqt5 don't match, crash have been happening.
> I will fix it in a day, or two.

Thank you. I love you.