今天用Python3.7运行代码,结果提示以下错误:
from urlparse import urlparse
ModuleNotFoundError: No module named 'urlparse'
中文翻译
从 urlparse 导入 urlparse
ModuleNotFoundError: 没有名为“urlparse”的模块
原因:
python3版本中已经将urllib2、urlparse和robotparser并入了urllib模块中,并且修改urllib模块,其中包含5个子模块,即是help()中看到的那五个名字。如下:
urllib.error:ContentTooShortError、HTTPError、URLError
urllib.parse:parseqs、parseqsl、quote、quotefrombytes、quote_plus、unquote unquoteplus、unquoteto_bytes、urldefrag、 urlencode、urljoin、 urlparse、 urlsplit、 urlunparse、 urlunsplit
urllib.request:AbstractBasicAuthHandler、 AbstractDigestAuthHandler、 BaseHandler、 CatheFTPHandler、 FTPHandler、 FancyURLopener、FileHandler、HTTPBasicAuthHandler、 HTTPCookieProcessor、HTTPDefaultErrorHandler、 HTTPDigestAuthHandler、 HTTPErrorProcessorl、 HTTPHandler、HTTPPasswordMgr、 HTTPPasswordMgrWithDefaultRealm、 HTTPRedirectHandler、HTTPSHandler、OpenerDirector、ProxyBasicAuthHandler ProxyDigestAuthHandler、 ProxyHandler、 Request、URLopener、UnknowHandler、 buildopener、 getproxies、 installopener、 pathname2url、 url2pathname、 urlcleanup、 urlopen、 urlretrieve
urllib.response:addbase、addclosehook、addinfo、addinfourl
urllib.robotparser:RobotFileParser
解决方法
知道了原因,我们解决起来就容易多了,例如,可以参考下面这个示例来做修改。
只需要:
将
import urlparse
my_url = urlparse.urlparse(url)
改为
from urllib import parse
my_url = parse.urlparse(url)
由于我这里用的是python3.7版本以及代码需求,因此我只需要修改为:
from urllib.parse import urlparse