1. 程式人生 > >python中匯入其他目錄下的模組 ——轉載

python中匯入其他目錄下的模組 ——轉載

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, 需要在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和mod2。
首先需要在mod2下建立__init__.py檔案(同(2)),src下不必建立該檔案。

下面程式執行方式均在程式檔案所在目錄下執行,如test2.py是在
# cd sub;之後執行
# python test2.py

而test1.py是在
# cd src;之後執行
# python test1.py; 不保證在src目錄下執行python sub/test2.py成功。
 
test2.py 中匯入模組mod1和mod2的呼叫方式如下:
import sys
sys.path.append("..")
import mod1
import mod2.mod2

4. 從(3)可以看出,匯入模組關鍵是能夠根據sys.path環境變數的值,找到具體模組的路徑。
這裡僅介紹上面三種簡單情況。