如何結合 Conda 任意創建和配置不同 Python 版本的雙軌隔離的Poetry 虛擬環境?
在 Python 開發中,為不同項目配置獨立且適配的虛擬環境至關重要。結合 Conda 和 Poetry 工具,能高效創建不同 Python 版本的 Poetry 虛擬環境,接下來將詳細闡述其完整流程及邏輯關聯。
一、準備工作:明確需求與工具定位
Poetry 虛擬環境的創建,需要依賴特定 Python 版本的運行環境,同時還需要 Poetry 工具來管理項目依賴和虛擬環境配置。而 Conda 恰好能解決 Python 版本管理的問題,通過 Conda 可以快速創建不同 Python 版本的基礎環境,而不直接使用conda虛擬環境,雙軌隔離為 Poetry 虛擬環境的搭建提供底層支持。
二、使用 Conda 創建不同 Python 版本的基礎環境
Conda 是一個強大的環境管理工具,通過它可以輕松創建指定 Python 版本的環境。
# 創建 Python 3.11 環境
conda create -n python311 python=3.11 -y
# 創建 Python 3.12 環境
conda create -n python312 python=3.12 -y
# 按需繼續創建
上述命令中,-n
?參數用于指定環境名稱,方便區分不同版本的 Python 環境;python=3.11
?或?python=3.12
?明確指定了要安裝的 Python 版本;-y
?表示自動確認安裝,避免交互式提示。創建完成后,使用以下命令激活相應環境:
# 激活 Python 3.11 環境
conda activate python311
?
三、獲取 python.exe 和 poetry.exe 文件
(一)python.exe 的來源
當使用 Conda 創建 Python 環境時,相應版本的 Python 解釋器(python.exe)會被安裝在 Conda 環境目錄下。以 Windows 系統為例,Python 3.11 環境中的 python.exe 路徑可能為?D:\ProgramData\anaconda3\envs\python311\python.exe
?,該文件是后續創建 Poetry 虛擬環境的核心執行文件,它決定了 Poetry 虛擬環境所基于的 Python 版本。
(二)poetry.exe 的安裝與獲取
在激活的 Conda 環境中,使用?pip
?安裝 Poetry 工具:
pip install poetry
安裝完成后,Poetry 的可執行文件(poetry.exe)會被放置在 Conda 環境的?Scripts
?目錄下。
例如在 Windows 系統 Python 3.11 的 Conda 環境中,poetry.exe 的路徑通常為?D:\ProgramData\anaconda3\envs\python311\Scripts\poetry.exe
?。這個文件將用于后續 Poetry 虛擬環境的創建、依賴管理等操作。
-
Python 可執行文件路徑示例:
D:\ProgramData\anaconda3\envs\python311\python.exe D:\ProgramData\anaconda3\envs\python312\python.exe
-
Poetry 可執行文件路徑示例:
D:\ProgramData\anaconda3\envs\python311\Scripts\poetry.exe D:\ProgramData\anaconda3\envs\python312\Scripts\poetry.exe
四、使用命令創建 Poetry 虛擬環境
在獲取了所需的 python.exe 和 poetry.exe 文件后,在激活的 Conda 環境中,切換到項目目錄,即可使用 Poetry 命令創建虛擬環境。
一)在 PowerShell 中操作
& "D:\ProgramData\anaconda3\envs\python311\Scripts\poetry.exe" config virtualenvs.create true
& "D:\ProgramData\anaconda3\envs\python311\Scripts\poetry.exe" init
# 填寫項目信息后再繼續執行以下命令
& "D:\ProgramData\anaconda3\envs\python311\Scripts\poetry.exe" install
(二)在 CMD 中操作
"D:\ProgramData\anaconda3\envs\python311\Scripts\poetry.exe" config virtualenvs.create true
"D:\ProgramData\anaconda3\envs\python311\Scripts\poetry.exe" init
# 填寫項目信息后再繼續執行以下命令
"D:\ProgramData\anaconda3\envs\python311\Scripts\poetry.exe" install
其中:
poetry config virtualenvs.create true
?確保自動創建虛擬環境;
poetry init
?會引導用戶初始化項目,生成?pyproject.toml
?文件,用于記錄項目信息和依賴配置;
poetry install
?則根據?pyproject.toml
?文件安裝項目所需的依賴包。
?
到了這一步后,我們可以按照提示填寫項目信息以完成 pyproject.toml
文件的創建。
填寫項目信息
以下是 poetry init
命令會提示我們填寫的一些常見項目信息:
-
Package name: 你的項目的名稱。
默認情況下,Poetry 會使用當前目錄的名稱作為項目名稱。
我們可以直接按回車鍵接受默認值,或者輸入新的項目名稱。 -
Version: 項目的版本號。
默認格式為0.1.0
,我們可以根據需要修改。 -
Description: 項目的簡短描述。
這將幫助其他人了解我們的項目的用途。 -
Author name: 項目作者的名稱。
我們可以輸入我們的名字或團隊名稱。 -
License: 項目的開源協議。
例如 “MIT”
是一種常見的選擇。 -
Python version: 項目所需的 Python 版本范圍。
例如,輸入^3.11
表示項目兼容 Python 3.11 及以上版本。 -
Dependencies: 項目運行所需的依賴包。
我們可以按提示依次輸入依賴包的名稱和版本要求。
示例填寫過程
假設我們的項目名稱是 suna
,你可以這樣填寫:
This command will guide you through creating your pyproject.toml config.Package name [suna]:
Version [0.1.0]:
Description []: My new Python project
Author name []: Your Name
License []: MIT
Python version (^3.11):
Would you like to define your main dependencies now? (yes/no) [yes]: yes
Would you like to define your development dependencies now? (yes/no) [yes]: yes
生成的?pyproject.toml
?文件示例
根據你提供的信息,Poetry 會生成一個類似以下內容的 pyproject.toml
文件:
[tool.poetry]
name = "suna"
version = "0.1.0"
description = "My new Python project"
authors = ["Your Name"]
license = "MIT"[tool.poetry.dependencies]
python = "^3.11"[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
完成這些步驟后,我們的項目配置就初始化完成了。
接下來,我們可以使用 Poetry 來管理項目的依賴和構建等操作。
?
五、在 PyCharm 中配置使用 Poetry 虛擬環境(推薦)
(一)打開項目設置
點擊 PyCharm 頂部菜單欄的 “文件”->“設置”->“項目:你的項目名稱”->“添加 Python 解釋器” 。
?
(二)添加 Poetry 解釋器
在 Python 解釋器設置界面,點擊齒輪圖標,選擇 “添加現有解釋器”或者“生成新的” 。
在彈出的窗口中,選擇 “Poetry” 作為解釋器類型,并指定 Poetry 的路徑,即之前獲取的?poetry.exe
?文件路徑(如?D:\ProgramData\anaconda3\envs\python311\Scripts\poetry.exe
?);
然后指定Poetry env use (python.exe)的路徑
(如D:\ProgramData\anaconda3\envs\python311\python.exe)
Poetry 會自動管理虛擬環境,確保虛擬環境在項目目錄內創建,點擊 “確定” 完成配置。
?
(三)驗證配置
在 PyCharm 的終端中運行?poetry --version
?命令,若能正確輸出版本信息,且后續項目依賴安裝、代碼運行等操作正常,則說明 Poetry 虛擬環境配置成功。
poetry -V
#或者
poetry --version
?
通過以上步驟,我們基于 Conda 創建了不同 Python 版本的基礎環境,獲取了所需的執行文件,使用 Poetry 命令創建了虛擬環境,并在 PyCharm 中完成了配置,實現了結合 Conda 任意創建和配置不同 Python 版本的 Poetry 虛擬環境,有效避免項目間的依賴沖突,提升開發效率。