從 Python 中的子目錄匯入模組
Muhammad Waiz Khan
2023年1月30日
2021年2月28日
本教程將講解 Python 中從子目錄匯入模組的各種方法。假設我們在專案目錄的子目錄下有一個檔案,我們想匯入這個檔案並在程式碼中使用它的方法。
我們可以在 Python 中通過將子目錄宣告為包來匯入檔案。這樣 Python 就會把它當作一個包,我們就可以匯入該目錄的檔案了。另一種選擇可以是將子目錄新增到 PYTHONPATH
環境變數中,它是 Python 預設尋找要匯入的包的路徑。下面給出了這些方法的細節和使用方法。
在 Python 中使用 __init__.py
從子目錄中匯入一個模組
__init__.py
檔案用於將一個目錄宣告為一個包。__init__.py
檔案可以防止 Python 將同名的目錄混在一起,所以為了區分一個簡單的目錄和一個包,使用了 __init__.py
檔案。
__init__.py
檔案可以是空的,也可以有初始化包所需的程式碼和包所需匯入的模組列表,這個列表由 __all__
變數表示。
一旦 __init__.py
檔案被新增到子目錄中,我們就可以從子目錄中匯入該檔案,就像下面的示例程式碼所示。
import subdirectory.myfile
在 Python 中使用 sys.path.insert()
方法從子目錄中匯入一個模組
從子目錄匯入檔案的另一種方法是將該目錄新增到 PYTHONPATH
中。PYTHONPATH
是環境變數,它包含 Python 搜尋以匯入包的目錄的路徑。
因此,如果我們使用 sys.path.insert()
方法將子目錄新增到 PYTHONPATH
中,Python 將首先查詢 PYTHONPATH
中的目錄,並從那裡匯入它。
sys.path.insert()
方法將把子目錄插入到 sys.path
或 PYTHONPATH
變數中,該變數包含了 Python 將搜尋匯入所需模組的目錄列表。
下面的示例程式碼演示瞭如何使用 sys.path.insert()
方法從子目錄中匯入一個檔案。
import sys
sys.path.insert(0, './subdirectory')
import myfile