python导入模块失败的原因
模块
1、模块的定义:
为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,
很多编程语言都采用这种组织代码的方式。在Python中,一个.py文件就称之为一个模块(Module)。
2、使用模块的好处:
<1> 提高了代码的可维护性,其次,可以被其他地方引用。
<2> 使用模块可以避免函数名和变量名冲突。
3、模块分类
分为三种:
<1> 内置标准模块(又称标准库)执行help('modules')查看所有python自带模块列表。
<2> 第三方开源模块,可通过pip install 模块名 联网安装。
<3> 自定义模块
4、模块调用的方法
import module from module import xx from module.xx.xx import xx as rename from module.xx.xx import
注意:模块一旦被调用,就相当于执行了另一个py文件里的代码。
5、自定义模块
所谓自定义模块,就是创建了一个.py文件,就可以称之为模块,可以在另一个程序里导入。
6、模块查找路径
自定义模块只能在当前路径下的程序里才能导入,换一个目录再导入自己的模块就报错说找不到了, 这是为什么?
这与导入路径有关
import sys print(sys.path)
输出
['', '/Library/Frameworks/Python.framework/Versions/3.6/lib/python36.zip', '/Library/Frameworks/Python.framework /Versions/3.6/lib/python3.6', '/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/lib-dynload', '/Library/Frameworks/Python.framework /Versions/3.6/lib/python3.6/site-packages']
python解释器会按照列表顺序去依次到每个目录下去匹配你要导入的模块名,只要在一个目录下匹配到了该模块名,就立刻导入,不再继续往后找。
注意:列表第一个元素为空,即代表当前目录,所以你自己定义的模块在当前目录会被优先导入。
来源:PY学习网:原文地址:https://www.py.cn/article.html