2012-07-15 12 views
18

私はGeventと遊んでいて、私はそれが大好きです。しかし、私は問題に遭遇しました。ブレークポイントにヒットせず、デバッグが機能しません(Visual StudioのPythonツールとEclipse PyDevの両方を使用)。これはmonkey.patch_all()が呼び出された後に発生します。gevent monkey-patching and breakpoints

これは大きな問題です。残念ながら、これはgeventを使用するためのブロッカーです。私はfew threadsを発見しました。これはgeventがデバッグを中断することを示しているようですが、私はそこに解決策があると思います。

デバッグとブレークポイントの作成方法を知っている人は、geventとmonkeyのパッチを適用することはできますか?

+0

なぜ、私たちは80番目のように「印刷」しませんか?これはあなたが探しているものではありませんが、バグか2つを修正するのに役立ちます。 – Moonwalker

答えて

3

pdb - The Python Debugger

import pdb 
pdb.set_trace() # Place this where you want to drop into the python interpreter. 
+0

魅力的な作品です。 – kkurian

8

PyCharm IDEは、問題を解決します。コンフィグレーションフラグを設定した後、gevent codeのデバッグをサポートします:http://blog.jetbrains.com/pycharm/2012/08/gevent-debug-support/

残念ながら、現時点で私はgeventをデバッグできる無料のツールを知らない。

UPD:ありがとうございます! PyCharmのコミュニティ版が登場しました。

+1

1年ほど後であっても、これらのスレッドはまだ有効です。 JetbrainsはPycharmの無料コミュニティ版を提供しています - http://www.jetbrains.com/pycharm/download/index.html –

0

私は現在Pycharm 2.7.3を使用していますが、私もgevent 0.13.8のデバッグに問題がありました。しかし、私がgevent 1.0rc3に更新したとき、私は再び正しくデバッグすることができました。


追記:私はちょうど今、JetBrainsのは、設定フラグと回避策を持っていたことを知った

次のハックでデバッグする必要があるとき、私はこの問題を回避していました。私は正直なところ、なぜそれがうまくいかなかったのか、何が悪影響を受けたのか分かりません。私はちょっとした試行錯誤をしただけで、grequestsを使うときにデバッグを動作させることができました。

# overrides the monkeypatch issue which causes debugging in PyDev to not work. 
def patch_time(): 
    return 
import gevent.monkey 
gevent.monkey.patch_time = patch_time 
import grequests 
関連する問題