需要为Python 3.5.1安装urllib2

时间:2015-12-26 20:40:16

标签: python python-3.x urllib2

我正在为Mac运行Python 3.5.1。我想用urllib2。我尝试安装它,但我告诉它已经拆分为urllib.request和urllib.error for Python 3.

我的命令(暂时从框架bin目录运行,因为它不在我的路径中):

sudo ./pip3 install urllib.request

返回:

Could not find a version that satisfies the requirement urllib.request (from versions: )
No matching distribution found for urllib.request

在我尝试一下子安装urllib2之前,我遇到了同样的错误。

4 个答案:

答案 0 :(得分:122)

  

警告 :安全性研究发现several poisoned packages on PyPI,包括一个名为urllib的软件包,安装时会“回家”。 如果您在2017年6月之后的某个时间使用了pip install urllib,请尽快删除该

你不能,而且你不需要。

urllib2是Python 2中包含的库的名称。您可以使用Python 3中包含的urllib.request libraryurllib.request库的工作方式与{2}在Python 2中的工作方式相同。因为已经包含,您无需安装它。

如果您按照教程告诉您使用urllib2,那么您会发现您会遇到更多问题。您的教程是为Python 2而不是Python 3编写的。查找其他教程,或者安装Python 2.7并继续学习该版本的教程。您会发现urllib2附带该版本。

或者,安装requests library以获得更高级别且更易于使用的API。它适用于Python 2和3。

答案 1 :(得分:19)

根据docs

  

注意即可。 urllib2模块已经拆分为Python 3中名为urllib.request和urllib.error的几个模块。在将源代码转换为Python 3时,2to3工具将自动调整导入。

所以似乎不可能完全按照你想要的那样做,但你可以使用urllib.request中适当的python3函数。

答案 2 :(得分:12)

在Python 3中,urllib2被两个名为urllib.requesturllib.error的内置模块代替

改编自source


所以替换掉它:

import urllib2

与此:

import urllib.request as urllib2

答案 3 :(得分:0)

在你的python脚本开头应该遵循:

import urllib2

之后,您可以继续使用以下免费示例:

response = urllib2.urlopen('http://pythonforbeginners.com/')
print response.info()
html = response.read()
response.close()  # best practice to close the file

或者您使用以下免费示例'import urllib2'后继续:

page = urllib2.urlopen('http://0.0.0.0')
print page.info()