在Python内部默认设置了一些路径,导入模块或包时,都会按照指定顺序逐一去特定的路径查找。
import sys
print(sys.path)
想要导入任意的模块和包,都必须写在如下路径下,才能被找到。
也可以自动手动在sys.path中添加指定路径,然后再导入可以,例如:
import sys
sys.path.append("路径A")
import xxxxx # 导入路径A下的一个xxxxx.py文件
Import xxx
多用于 导入sys.path目录下的一个py文件
模块级别
├── commons
│ ├── __init__.py
│ ├── convert.py
│ ├── page.py
│ ├── tencent
│ │ ├── __init__.py
│ │ ├── sms.py
│ │ └── wechat.py
│ └── utils.py
├── many.py
└── run.py
import many
import commons.page
import common.tencent.sms
v1 = many.show()
v2 = common.page.pagination
v3 = commons.tencent.sms.send_sms()
包级别
├── commons
│ ├── __init__.py
│ ├── convert.py
│ ├── page.py
│ └── utils.py
├── third
│ ├── __init__.py
│ ├── ali
│ │ └── oss.py
│ └── tencent
│ ├── __init__.py
│ ├── __pycache__
│ ├── sms.py
│ └── wechat.py
└── run.py
import commons
import third.tencent
v1 = commons.xx()
v2 = third.tencent.xxx()
From xxx import xxx
一般适用于多层嵌套和导入模块中某个成员的情况
成员级别
├── commons
│ ├── __init__.py
│ ├── convert.py
│ ├── page.py
│ └── utils.py
├── many.py
└── run.py
from commons.page import pagination
from commons.utils import encrypt,NAME
from many import show
基于from模式也可以支持from mang import *
导入一个模块中所有的成员
模块级别
├── commons
│ ├── __init__.py
│ ├── convert.py
│ ├── page.py
│ └── utils.py
├── many.py
└── run.py
包级别
├── commons
│ ├── __init__.py
│ ├── convert.py
│ ├── page.py
│ ├── tencent
│ │ ├── __init__.py
│ │ ├── sms.py
│ │ └── wechat.py
│ └── utils.py
├── many.py
└── run.py
在导入模块时,对与from xx import xx
支持相对导入
相对导入只能用在包中的py文件中(i嵌套在文件中的py文件才可以使用,根目录下无法使用
)