我正在为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之前,我遇到了同样的错误。
答案 0 :(得分:122)
警告 :安全性研究发现several poisoned packages on PyPI,包括一个名为
。urllib
的软件包,安装时会“回家”。 如果您在2017年6月之后的某个时间使用了pip install urllib
,请尽快删除该 包
你不能,而且你不需要。
urllib2
是Python 2中包含的库的名称。您可以使用Python 3中包含的urllib.request
library。 urllib.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.request
和urllib.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()