0

PIP 8.1.2 を使用して、Win10 の Python 3.3.5 32 ビットに ipdb (IPython 対応の pdb) をインストールして使用しようとしています。エラーなしでWindows cmdにPIP経由でインストールしました(個別にインストールする必要がありました):

 pip install ipdb

「テスト」文字列ipdb_test.pyを出力する前にデバッガーで停止することを期待して、簡単なテスト スクリプトを作成しました。

import ipdb
ipdb.set_trace()
print('test')

IDLE エディターから実行すると、次の例外が表示されます。

Traceback (most recent call last):
  File "C:\Python33.5-32\lib\site-packages\ipdb\__main__.py", line 44, in <module>
    get_ipython
NameError: name 'get_ipython' is not defined

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:/temp/ipdb_test.py", line 1, in <module>
    import ipdb
  File "C:\Python33.5-32\lib\site-packages\ipdb\__init__.py", line 7, in <module>
    from ipdb.__main__ import set_trace, post_mortem, pm, run             # noqa
  File "C:\Python33.5-32\lib\site-packages\ipdb\__main__.py", line 51, in <module>

  (...)

  File "C:\Python33.5-32\lib\site-packages\prompt_toolkit\terminal\win32_output.py", line 266, in flush
    self.stdout.flush()
AttributeError: 'NoneType' object has no attribute 'flush'
4

1 に答える 1

2

この問題は IPython に関連しているように見えたので、ipdb の依存関係の解決中にインストールされたバージョンが「ipython-5.1.0」であることを確認しました。

この問題に対する WA ソリューションは、IPython のバージョン 4.2.1 へのフォールバックであることが判明しました。

pip install "ipython<5"
    (...)
    Successfully uninstalled ipython-5.1.0
    Successfully installed ipython-4.2.1

その後、ipdb は予想どおりブレークポイントで停止しました。

$ python C:\temp\ipdb_test.py
WARNING: Readline services not available or not loaded.
WARNING: Proper color support under MS Windows requires the pyreadline library.
You can find it at:
http://ipython.org/pyreadline.html

Defaulting color scheme to 'NoColor'
> c:\temp\ipdb_test.py(3)<module>()
      1 import ipdb
      2 ipdb.set_trace()
----> 3 print('test')

ipdb>

この問題について IPython プロジェクト チームに連絡するのは有効なケースかもしれませんが、デバッグ セッションを実行する最初のタスクが完了していることがわかります。

于 2016-09-14T23:51:22.190 に答える