1、什么是python包?
python中,每个py文件被称之为模块,每个具有__init__.py文件的目录被称为包。只要模块或者包所在的目录在sys.path中,就可以使用import 模块或import包来使用。
比如下面这个web_monitor项目,共有3个包:conf、db、utils。这3个包中的py文件都可以被其他模块导入。
1 ── web_monitor 2 ├── conf 3 │ ├── db_config.py 4 │ ├── __init__.py 5 ├── db 6 │ ├── db.cnf 7 │ ├── __init__.py 8 │ ├── mongo.py 9 │ ├── mysql_pool.py 10 ├── monitor 11 │ ├── task1.py 12 │ └── task2.py 13 ├── test.py 14 └── utils 15 ├── __init__.py 16 └── util.py
2、如何导入?
(1)导入同级目录/同级目录的子模块:直接import即可。eg:
test.py中导入task1.py:from task1 import * / import task1
或者task2.py中导入task1.py:from moitor.task1.py import *
(2)导入上级目录的同级目录:
cur_dir = os.path.abspath(os.path.dirname(__file__)) pro_dir = os.path.split(cur_dir)[0] sys.path.append(pro_dir)
import *****
或者
pro_dir = os.path.abspath(os.path.dirname(__file__) + '/' + '..') sys.path.append(pro_dir)
import *******