Python 中的 PYTHONPATH 環境變數是什麼?
在 Python 中,PYTHONPATH 是一個環境變數,它指定了一個目錄列表,在匯入模組時 Python 會搜尋這些目錄以查詢 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/
使用虛擬環境
當您使用 venv 或 virtualenv 建立虛擬環境時,它會自動將 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 模組。當您有不想安裝在全域性預設位置的自定義 Python 庫時,這很有用。有幾種方法可以設定 PYTHONPATH,包括在終端中設定它,使用 os 模組在 Python 指令碼中設定它,使用 os 模組追加到它,使用 .pth 檔案,使用虛擬環境以及使用 .env 檔案。透過有效地使用 PYTHONPATH,您可以更有效地組織 Python 程式碼並使其更易於維護。
總之,這些是使用 PYTHONPATH 指定要搜尋 Python 模組的目錄的一些方法。您選擇的方法取決於您的需求和偏好,但使用虛擬環境或包目錄結構是常用的方法。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP