Python import
总结下python import的零碎知识
import的作用
import语句用来导入其他python文件(称为模块module),使用该模块里定义的类、方法或者变量,从而达到代码复用的目的。
import 的基本用法:
基本概念:
- 模块(module):一般是以.py结尾的python文件,也可以是”.pyo”、”.pyc”、”.pyd”、”.so”、”.dll”结尾的文件。
模块可以定义函数、类、变量,也能包含可执行的代码。module来源有3种:
①Python内置的模块(标准库);
②第三方模块;
③自定义模块。
- 包(package):含有Python模块的文件夹
用法一:import []
1 | import [module_name\package_name] |
Python会在两个地方寻找这个模块,
第一是sys.path(通过运行代码import sys; print(sys.path)
查看),os这个模块所在的目录就在列表sys.path中,一般安装的Python库的目录都可以在sys.path中找到,所以对于安装好的库,我们直接import即可。
第二个地方就是运行文件所在的目录。
用法二:from [] import []
从包中引入模块的import语句如下:
1 | from [module_name\package_name] import [module_name\package_name\method] |
导入一个包的时候,实际上就是导入包里面的__init__.py
作为模块
import的工作原理
下面解析一下python的导入是如何工作的。假设你导入了一个abc模块。
1 | import abc |
python 是如何找到这个模块的呢?
首先,python会在
sys.modules
中查找这个模块名,sys.modules
是先前曾被导入过的所有模块的缓存。简单来说,就是之前被导入过的模块,都被暂时保存在里面。如果在缓存中找不到这个模块,python接下来会在内置的模块(标准库)中寻找
如果内置模块也找不到,Python将会去
sys.path
定义的文件夹列表中搜索,sys.path 中默认的路径为:- 当前目录的路径,自定义的模块就是在这里被找到的。
- 环境变量 PYTHONPATH 中指定的路径列表
- Python 安装路径的 lib 目录所在路径
如果以上步骤都找不到这个模块,python会报错ModuleNotFoundError
详解 Python import 机制 (一):import 中的基本概念 - 知乎 (zhihu.com)
__all__变量暴漏接口
python _all__用法-徐徐图之-的博客-CSDN博客