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 版本升级问题,但我检查了我的iPython
和ipdb
是当前最新的(4.0.0 和 0.8.1)。
谁能解释为什么会这样?