Python import调用不同路径下的模块

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

你可能感兴趣的:(Python import调用不同路径下的模块)