一个简单的代码:
import urllib2
import requests
from PyQt4 import QtCore
import multiprocessing
import time
data = (
['a', '2'],
)
def mp_worker((inputs, the_time)):
r = requests.get('http://www.gpsbasecamp.com/national-parks')
request = urllib2.Request("http://www.gpsbasecamp.com/national-parks")
response = urllib2.urlopen(request)
def mp_handler():
p = multiprocessing.Pool(2)
p.map(mp_worker, data)
if __name__ == '__main__':
mp_handler()
基本上,如果我导入PyQt4,并且我有一个urllib请求(我相信这几乎用于所有的web提取库,比如beauthulsoup、Requests或Pyquery)。我的MAC电脑在我的日志上崩溃了)
这可能是由于
_scproxy.get_proxies()
在Mac上不安全。在这里是https://bugs.python.org/issue33725#msg329926
这是urllib可能试图做的事情,导致多处理时失败。在
有一个解决方法,就是将环境变量
no-proxy
设置为*
例如
export no_proxy=*
这是真的。它总是在Mac上失败,我浪费了好几天来解决这个问题。老实说,目前还没有解决办法。最好的方法是使用线程而不是进程,它将像一个魅力。在
顺便说一句-
以及
^{pr2}$做一件同样的事。你为什么要做两次?在
相关问题 更多 >
编程相关推荐