web-dev-qa-db-ja.com

pylabインポート後にipythonデバッガーがQtエラーでいっぱいになる

関連するpyqtをインポートした後、ipythonでデバッガーを使用できません。

何もインポートせず、死後のようなエラーをデバッグする場合

$ ipython3

In [1]: abc
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-1-03cfd743661f> in <module>
----> 1 abc

NameError: name 'abc' is not defined

In [2]: %debug
> <ipython-input-1-03cfd743661f>(1)<module>()
----> 1 abc

ipdb> 

すべてが順調ですが、pyqt5バックエンドでipython3を起動すると、

$ ipython3 --pylab=qt5

In [1]: abc
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-1-03cfd743661f> in <module>
----> 1 abc

NameError: name 'abc' is not defined

In [2]: %debug
> <ipython-input-1-03cfd743661f>(1)<module>()
----> 1 abc

ipdb> QObject: Cannot create children for a parent that is in a different thread.
(Parent is QApplication(0x2105860), parent's thread is QThread(0x1ccc6c0), current thread is QThread(0x7fe7940021f0)
QObject: Cannot create children for a parent that is in a different thread.
(Parent is QApplication(0x2105860), parent's thread is QThread(0x1ccc6c0), current thread is QThread(0x7fe7940021f0)
QObject: Cannot create children for a parent that is in a different thread.
(Parent is QApplication(0x2105860), parent's thread is QThread(0x1ccc6c0), current thread is QThread(0x7fe7940021f0)
QObject: Cannot create children for a parent that is in a different thread.
[...]

私はqtで開発していません。matplotlibのバックエンドとしてのみ使用します。この質問が非常に曖昧であることは知っていますが、解決策を探す場所がわかりません。

私はUbuntu 18.04にいます、Python 3.6.9、ipython 7.14.0、pyqt5 5.14.2。

5
clemisch

この問題は、pipパッケージ「Prompt_toolkit」をアップグレードすることで解決されます。

$ pip3 install --upgrade Prompt_toolkit  # optionally --user 

私にとっては、バージョン2.0.10から3.0.5になりました。

0
clemisch