在我的Python项目中,我一直在尝试使用grequest来处理异步HTTP请求,但是我遇到了AttribteError,并且已经搜索了几个小时的解决方案。
这是我的测试代码:

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'

我已经尝试卸载和重新安装GRACKEST和整个Python,但是问题仍然存在。
我也试图避免使用grequest(和gevent),但同样的问题也发生了。
经过一番搜索,我相信我能找到的最接近的问题是:
python3: socket._fileobject removed #434
但对我来说,这似乎不是一件小事,而且提供的解决方案与SSL相关。
如果您有任何解决方案或类似的问题,请分享,非常感谢!

最佳答案

我遇到了同样的问题。之后

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

执行的代码没有问题(--user是可选的)。

关于python - 在Python 3.4中导入grequest时获取AttributeError,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34891244/

10-12 07:24