Python包含子目录中的模块方法比较简单,关键是能够在sys.path
里面找到通向模块文件的路径。
第一大类引入方式
(1) 同级目录下的调用
如下面程序结构:
`--src
|--mod1.py
`--test1.py
若需要在程序 test1.py
中导入模块 mod1
,则直接使用
import mod1
或
from mod1 import *
(2) 调用子目录下的模块
如下面程序结构:
`--src
|--mod1.py
|--mod2
| `--mod2.py
`--test1.py
若在程序test1.py
中导入模块mod2.py
,需要在mod2
文件夹中建立文件__init__.py
文件(也可以在该文件中自定义输出模块接口);然后使用
from mod2.mod2 import *
或
import mod2.mod2
(3) 调用上级目录下的文件
如下面程序结构:
`--src
|--mod1.py
|--mod2
| `--mod2.py
|--sub
| `--test2.py
`--test1.py
若想实现程序test2.py
中导入模块mod1.py
,首先跳到src
目录下,然后直接可以调用mod1
,具体代码如下:
import sys
sys.path append("..")
import mod1
若想实现程序test2.py
中导入模块mod2.py
,首先跳到src
目录下,然后在mod2
文件夹内建立__init__.py
文件,src
下不必建立该文件,通过import mod2.mod2
进行调用。具体代码如下:
import sys
sys.path.append("..")
import mod2.mod2
从(3)中可以看出,调用模块关键是能够根据sys.path
环境变量的值,找到具体模块的路径。
第二大类引入方式
直接增加模块所在的路径
import sys
sys.path.append('path/to/your/module')
如需要在
test.py
(路径为:/User/apple/Desktop/path2/path22/test.py
)
中引入
mod.py
(路径为:/Users/apple/Desktop/path1/path11/mod.py
)
则在test.py
中
import sys
sys.path.append('/Users/apple/Desktop/path1/path11/')
from mod import *
或
import mod
但是这种方法只有在python解释器的环境下才生效。