在看python代码的时候,编辑器有时会出现红色波浪线,然后提示如下的信息。
ImportError: No module named ‘模块名’
出现以上的错误提示,一种情况是代码所在的python环境中没有安装改模块,需要使用pip install 模块名 来安装。另一种情况跟第一种差不多,不过唯一不同的是,代码的执行环境和当前的python环境版本不一致,然而py2和py3两种版本之间有一部分模块是随着python的更新被替换掉了,所以会出现以上报错。
下面将列举出py2和py3之间被替换掉的模块(持续更新)。
一,内置模块的替换
py2的模块 | py3的模块 |
---|---|
commands | subprocess |
cPickle | pickle |
cmp | operator |
urllib2, urlprase | urllib (例:import urllib.request) |
二,第三方模块的替换
py2的模块 | py3的模块 |
---|---|
mysqldb | pymysql |
说明
Python的3.0版本,常被称为Python 3000,或简称Py3k。相对于Python的早期版本,这是一个较大的升级。
为了不带入过多的累赘,Python 3.0在设计的时候没有考虑向下相容。
许多针对早期Python版本设计的程式都无法在Python 3.0上正常执行。
为了照顾现有程式,Python 2.6作为一个过渡版本,基本使用了Python 2.x的语法和库,同时考虑了向Python 3.0的迁移,允许使用部分Python 3.0的语法与函数。
新的Python程式建议使用Python 3.0版本的语法。
除非执行环境无法安装Python 3.0或者程式本身使用了不支援Python 3.0的第三方库。目前不支援Python 3.0的第三方库有Twisted, py2exe, PIL等。
该说明摘自:菜鸟教程