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 是如何找到这个模块的呢?

  1. 首先,python会在sys.modules中查找这个模块名,sys.modules是先前曾被导入过的所有模块的缓存。简单来说,就是之前被导入过的模块,都被暂时保存在里面。

  2. 如果在缓存中找不到这个模块,python接下来会在内置的模块(标准库)中寻找

  3. 如果内置模块也找不到,Python将会去sys.path 定义的文件夹列表中搜索,sys.path 中默认的路径为:

    • 当前目录的路径,自定义的模块就是在这里被找到的。
    • 环境变量 PYTHONPATH 中指定的路径列表
    • Python 安装路径的 lib 目录所在路径

如果以上步骤都找不到这个模块,python会报错ModuleNotFoundError

详解 Python import 机制 (一):import 中的基本概念 - 知乎 (zhihu.com)

__all__变量暴漏接口

python _all__用法-徐徐图之-的博客-CSDN博客

__init__文件