ipdb
インスタンスにラップされた http リクエストを作成すると、単にインポートするmultiprocessing Process
と、プログラムがエラーやメッセージなしで終了するように見えます。
次のスクリプトは非常に奇妙な動作をします。
from multiprocessing import Process
import requests
import ipdb
def spawn():
print("before")
r = requests.get("http://wtfismyip.com")
print("after")
Process(target=spawn).start()
これをターミナルで実行すると、出力は単純before
になり、プロンプトに戻ります。すべてをコメントアウトすればimport ipdb
問題なく、リクエストは正常に行われます。
- インスタンスを変数に格納し、後で
Process
呼び出しても違いはありませんでした。join()
start()
- これは、Python 2.7.10 と 3.5.0 の両方で発生します。
- 従来の では起こりません
pdb
。 - ここやここにいる他の人々もこの問題を抱えています。前者では、インポート
ipdb
が原因かどうかはわかりません。後者では、パッケージ/python バージョンのアップグレードの問題のように見えましたが、現在の最新 (4.0.0 および 0.8.1) でiPython
あることを確認しました。ipdb
なぜこれが起こっているのか誰でも説明できますか?