Processo de multiprocessamento python é eliminado por solicitação http se o ipdb for importado
Parece simplesmente importaripdb
ao fazer uma solicitação http envolvida em ummultiprocessing Process
instância faz com que o programa saia sem erros ou mensagens.
O script a seguir se comporta de maneira estranha:
from multiprocessing import Process
import requests
import ipdb
def spawn():
print("before")
r = requests.get("http://wtfismyip.com")
print("after")
Process(target=spawn).start()
Se você executar isso no terminal, a saída é simplesmentebefore
e você está de volta quando solicitado. Se você comentarimport ipdb
está tudo bem e a solicitação foi feita com sucesso.
Process
instância em uma variável e chamandojoin()
depois destart()
não fez diferença.Isso acontece no Python 2.7.10 e 3.5.0.Faznão acontecer com o tradicionalpdb
.Outras pessoasaqui eaqui também tiveram esse problema. No primeiro, não tenho certeza se a importaçãoipdb
foi a causa. No último, parecia ser um problema de atualização da versão do pacote / python, mas verifiquei se meuiPython
eipdb
são as últimas atuais (4.0.0 e 0.8.1).Alguém pode explicar por que isso está acontecendo?