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解释器的环境下才生效。










网友评论