2016-01-20 59 views
3

我一直在嘗試使用grequests在我的Python項目asyncronous HTTP請求,但我得到了一個AttribteError並一直在尋找了幾個小時的解決方案。獲取AttributeError的同時,進口grequests在Python 3.4

這裏是我的測試代碼:

import grequests 

urls = ['htt://google.com', 'http://yahoo.com', 'http://bing.com'] 
unsent_request = (grequests.get(url) for url in urls) 
results = grequests.map(unsent_request) 
print(results) 

和錯誤消息:

Traceback (most recent call last): 
    File "<censored>", line 1, in <module> 
     import grequests 
    File "C:\Python34\lib\site-packages\grequests.py", line 21, in <module> 
     curious_george.patch_all(thread=False, select=False) 
    File "C:\Python34\lib\site-packages\gevent\monkey.py", line 195, in patch_all 
     patch_socket(dns=dns, aggressive=aggressive) 
    File "C:\Python34\lib\site-packages\gevent\monkey.py", line 124, in patch_socket 
     from gevent import socket 
    File "C:\Python34\lib\site-packages\gevent\socket.py", line 119, in <module> 
     _fileobject = __socket__._fileobject 
AttributeError: 'module' object has no attribute '_fileobject' 

我試圖卸載並重新安裝這兩個grequests和整個Python的,但問題依然存在。

我也試圖避免使用grequest(和使用gevent),但同樣的問題發生。

一些搜索後,我相信我能找到最接近的問題是這樣的一個:

python3: socket._fileobject removed #434

但看起來不是很平凡的我,所提供的解決方案是SSL相關的東西。

如果您有任何解決方案或類似問題,請分享,非常感謝!

回答

1

我遇到了同樣的問題。

pip3 install --user --upgrade gevent==1.1rc3 

代碼執行沒有問題(--user是可選的)。

+0

非常感謝你,這完美的作品! –