之前用 python 2.X 写了一个下载文件的小东西,结果今天换成 python 3.X 运行的时候老有报错。
错误1:ModuleNotFoundError: No module named 'urllib2'
原因:python 3.x 版本把urllib2 和 urllib 整合到了一起,引入模块变成一个,只有 import urllib
解决:将 import urllib、import urllib2 直接换成 import urllib
错误2:AttributeError: module 'urllib' has no attribute 'urlretrieve'
原因:python3.X 的 urllib 的引用需要加上.request
解决:把原来的 urllib.urlretrieve 改成 urllib.request.urlretrieve
错误3:TypeError: 'module' object is not callable
原因:变量名不能与引入模块名方法相同
解决:错误:request = urllib.request.urlopen('http://www.baidu.com')
正确的是:r = urllib.request.urlopen('http://www.baidu.com')