Python 中的 PYTHONPATH 環境變數是什麼?


Python 中,PYTHONPATH 是一個環境變數,它指定一個目錄列表,用於在匯入模組時搜尋 Python 模組。當您在 Python 中匯入模組時,Python 會在 sys.path 中指定的目錄中查詢模組,sys.path 是一個目錄列表,其中包括當前工作目錄和 PYTHONPATH 中指定的目錄。

PYTHONPATH 是一個環境變數,您可以將其設定為新增 Python 將在其中查詢模組和包的其他目錄。對於大多數安裝,您不應該設定這些變數,因為 Python 執行不需要它們。Python 知道在哪裡可以找到其標準庫。

設定 PYTHONPATH 的唯一原因是維護您不想安裝在全域性預設位置(即 site-packages 目錄)的自定義 Python 庫的目錄。

如何使用 PYTHONPATH 的示例:

在終端中設定 PYTHONPATH

您可以在執行 Python 指令碼之前在終端中設定 PYTHONPATH。這是一個示例:

$ export PYTHONPATH=/path/to/my/modules/
$ python my_script.py

在指令碼中設定 PYTHONPATH

您可以使用 os 模組 在 Python 指令碼中設定 PYTHONPATH。這是一個示例:

import os
import sys
sys.path.insert(0, os.path.abspath("/path/to/my/modules/"))

追加到 PYTHONPATH

您可以使用os模組將目錄追加到 Python 指令碼中的 PYTHONPATH。這是一個示例:

import os
import sys
sys.path.append(os.path.abspath("/path/to/my/modules/"))

使用 .pth 檔案

您可以在包含要新增到 PYTHONPATH 的目錄的目錄中建立一個 .pth 檔案。這是一個示例:

$ cat /path/to/my/modules/my_modules.pth
$/path/to/my/modules/

使用虛擬環境

當您使用 venvvirtualenv 建立虛擬環境時,它會自動將 PYTHONPATH 設定為包含虛擬環境的 site-packages 目錄。這是一個示例:

$ python -m venv my_virtualenv
$ source my_virtualenv/bin/activate

使用 .env 檔案

您可以使用 .env 檔案為您的專案設定環境變數,包括 PYTHONPATH。首先,使用以下命令安裝 python-dotenv 包:

pip install python-dotenv

然後,在專案根目錄中建立一個 .env 檔案,並新增以下行來設定 PYTHONPATH:

PYTHONPATH=/path/to/my/modules/

最後,在您的 Python 指令碼中載入 .env 檔案中的環境變數:

from dotenv import load_dotenv
import os
load_dotenv()
sys.path.insert(0, os.getenv("PYTHONPATH"))

使用包目錄結構

您可以建立一個包目錄結構,其中每個子目錄代表一個包,並且這些子目錄會自動新增到 PYTHONPATH。這是一個示例

import my_package.my_module

並像這樣匯入 my_submodule:

import my_package.my_subpackage.my_submodule

PYTHONPATH 是一個環境變數,它指定一個目錄列表,用於在匯入模組時搜尋 Python 模組。當您有不想安裝在全域性預設位置的自定義 Python 庫時,這很有用。有多種方法可以設定 PYTHONPATH,包括在終端中設定它,使用 *os* 模組在 Python 指令碼中設定它,使用 *os* 模組追加到它,使用 .pth 檔案,使用虛擬環境以及使用 .env 檔案。透過有效地使用 PYTHONPATH,您可以更有效地組織 Python 程式碼並使其更易於維護。

總之,這些是一些使用 PYTHONPATH 指定要搜尋 Python 模組的目錄的方法。您選擇的方法取決於您的需求和偏好,但使用虛擬環境或包目錄結構是常用的方法。

更新於:2023年8月26日

39K+ 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.