在 Python 中從父目錄匯入模組

Muhammad Waiz Khan 2023年1月30日 2021年4月29日
  1. 使用相對匯入從 Python 的父目錄中匯入模組
  2. 通過將其新增到 PYTHONPATH,從 Python 的父目錄中匯入模組
  3. 使用 sys.path.insert() 方法從 Python 父目錄中匯入模組
在 Python 中從父目錄匯入模組

本教程將說明從 Python 的父目錄匯入模組的各種方法。我們匯入不同的模組以在程式碼中使用其他功能。它使我們免於再次複製或實現功能,並使程式碼簡潔且易於理解。

假設我們要從當前專案目錄的父目錄中匯入一個模組。我們可以使用不同的方法來做到這一點,下面將對此進行說明。

使用相對匯入從 Python 的父目錄中匯入模組

相對匯入用於使用當前目錄路徑作為參考在程式碼中匯入模組。要使用 import 語句匯入模組,我們首先必須通過在父目錄中新增 __init__.py 檔案來宣告目錄為包。將父目錄宣告為包後,我們可以使用相對包方法匯入模組。

假設我們有以下目錄樹。

parent_parent_directory/
    parent_directory/
        mymodule.py
        __init__.py
    current_directory/
        currentmodule.py
    mymodule.py
    __init__.py

下面的示例程式碼演示瞭如何從父包中匯入模組。

from ..parent_directory import mymodule

要從當前目錄的上兩級目錄中匯入模組,我們必須在包目錄名之前加三個點,以返回兩級,如下面的示例程式碼所示。

from ...parent_parent_directory import mymodule

通過將其新增到 PYTHONPATH,從 Python 的父目錄中匯入模組

PYTHONPATH 是一個環境變數,用於指定 Python 匯入模組和包時應檢視的目錄列表。

因此,如果我們從需要匯入模組的位置新增父目錄,Python 將自動檢視父目錄並找到所需的模組。

使用 sys.path.insert() 方法從 Python 父目錄中匯入模組

我們還可以使用 sys.path.insert() 方法將父目錄新增到 sys.path 列表中,該列表是字串列表,用於指定要查詢軟體包和模組的路徑。sys.path 包含 PYTHONPATH 環境變數目錄列表,還可以使用 sys.path.insert() 方法新增其他路徑。

以下示例程式碼演示瞭如何使用 sys.path.insert() 方法將父目錄新增到 Python 中的 sys.path 列表中。

import os, sys

p = os.path.abspath('.')
sys.path.insert(1, p)

import mymodule

相關文章 - Python Import