從 Python 中的子目錄匯入模組

Muhammad Waiz Khan 2023年1月30日 2021年2月28日
  1. 在 Python 中使用 __init__.py 從子目錄中匯入一個模組
  2. 在 Python 中使用 sys.path.insert() 方法從子目錄中匯入一個模組
從 Python 中的子目錄匯入模組

本教程將講解 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.pathPYTHONPATH 變數中,該變數包含了 Python 將搜尋匯入所需模組的目錄列表。

下面的示例程式碼演示瞭如何使用 sys.path.insert() 方法從子目錄中匯入一個檔案。

import sys
sys.path.insert(0, './subdirectory')
import myfile

相關文章 - Python Import