3

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 版本升级问题,但我检查了我的iPythonipdb是当前最新的(4.0.0 和 0.8.1)。

谁能解释为什么会这样?

4

0 回答 0