关于python模块总结
名词解释
模块(module):在python中,一个.py文件就是一个模块
包(package):为了避免模块名冲突,Python又引入了按目录来组织模块的方法。当目录下存在__init__.py,python就会将其识别为“包”
目录结构如下:mypackage是一个包,abc.py、xyz.py是模块
mypackage
├─ __init__.py
├─ abc.py
└─ xyz.py
模块导入
模块分类
内置模块:安装python时,自带的模块.例如:sys、os、time、unittest等,存放在python安装目录的lib目录下
第三方模块:
- 安装:pip install {package_name} | python -m pip install {package_name}
自定义模块:即自定义的.py文件
模块搜索路径
默认情况下,Python解释器会搜索当前目录、所有已安装的内置模块和第三方模块,搜索路径存放在sys
模块的path
变量中:
1、当前目录
mypackage ├─ __init__.py ├─ abc.py └─ xyz.py
abc.py
def test_import_module(): print("test")
xyz.py
import abc #导入自定义模块abc
from abc import test_import_modul #从abc模块中导入test_import_module方法
2、非当前目录
mypackage ├─ __init__.py ├─ abc.py mypackage2 ├─ __init__.py └─ xyz.py
abc.py
def test_import_module():
print("test")
xyz.py
from mypackage import abc
运行xyz.py.报错不存在mypackage这个模块
根据python搜索包路径顺序, xyz想引入非当前目录下的自定义模块abc,则需要将项目目录添加到系统环境变量中
python中sys.path可查看系统变量值
import sys print(sys.path)
临时将目录添加到python系统变量
import sys import os path = os.path.abspath("..") sys.path.append(path) from mypackage import abc
将目录永久加入python系统变量
在系统变量中创建一个名为PYTHONPATH的变量, 变量值就为目录名称.