Python 2.7.10错误"来自urllib.request import urlopen"没有模块命名请求

Ste*_*ire 21 python urllib

我打开了python代码github.python2.x当我试图运行它时,我认为它是并且得到了上述错误.从阅读中我看到Python 3已经urllib自行折旧并用许多库替换它,包括urllib.request.

看起来代码是用python 3编写的(来自知道会被赞赏的人的确认.)此时我不想转向Python 3 - 我还没有研究它对我现有代码的作用.

认为应该有一个urllib模块Python 2,我搜索谷歌(使用"python2 urllib下载")并没有找到一个.(它可能隐藏在许多答案中,因为urllib包括下载功能.)我查看了我的Python27/lib目录,但没有在那里看到它.我可以获得运行此模块的版本Python27吗?在哪里以及如何?

小智 37

尝试使用urllib2:

https://docs.python.org/2/library/urllib2.html

这行应该可以替换urlopen:

from urllib2 import urlopen
Run Code Online (Sandbox Code Playgroud)

在Macbook Pro上测试Python 2.7

尝试发布有问题的git的链接.


boa*_*der 8

您可以进行防御性编程,然后执行以下操作:

try:
    from urllib.request import urlopen
except ImportError:
    from urllib2 import urlopen
Run Code Online (Sandbox Code Playgroud)

然后在代码中,只需使用:

data = urlopen(MIRRORS).read(AMOUNT2READ)
Run Code Online (Sandbox Code Playgroud)


Jon*_*way 7

而不是使用urllib.request.urlopen()删除python 2的请求.

urllib.urlopen()你不必在python 2.x中请求你想要做什么.希望对你有效.这是使用python 2.7测试我收到相同的错误消息,这解决了它.


Mac*_*ski 7

from urllib.request import urlopen, Request
Run Code Online (Sandbox Code Playgroud)

应该解决一切


cee*_*kay 5

更改

from urllib.request import urlopen

from urllib import urlopen

通过这样更改,我能够解决此问题。对于Python2.7macOS10.14