私のプロジェクトでは、PyCharmデバッガでデバッグするasyncioとasyncio tcp接続に基づいて、非常に非常に間違ったエラーが発生します。PyCharmでasyncioコードをデバッグすると、狂った反復不可能なエラーが発生します
実行後にコードにブレークポイントを置くと、ブレークポイントは決して起動しません。 しかし、プログラムを開始する前にブレークポイントが置かれていれば、ブレークポイントが起動します。
しかし、ブレークポイントで発生すると、(ブレークポイントで一時停止して再開した)奇妙なエラーが発生することがあります。私が述べ
次の例外:
- はTypeError: 'コルーチン' オブジェクト呼び出すことはできません
- はSystemError:不明なオペコード
まず例外は非常にまれです。コード上で任意の場所で持ち上げることができ、反復不可能です。 2回目の例外は、最近初めてのことです。これは私のコードで繰り返すことができます。ブレークポイントを置く関数は、非同期タスク(asyncio.Task
)の関数です。私は最初から繰り返すことはできません。しかし、私は例外のタイプ(未知のopcode ??? O_O)はあなたを考えるべきだと思います。さらに !コードを変更すると例外がなくなりました。たとえば、a = 0
行を追加しました。例外は後に発生しません。 a = 0
を削除すると、この例外が再度返されます。
このような難解なエラーはありますか?
PyCharmデバッガがasnycioと競合していると思います。 または、私は何か間違っていますか?
不明なオペコードは、ブレークポイントが置かれた関数内の任意の行のコードにすることができます。コードの特定の場所で繰り返します。
この例外は、ラインではなく、別の関数内であることができます。非常にまれで再現不可能