【筆記】結合 Conda任意創建和配置不同 Python 版本的雙軌隔離的 Poetry 虛擬環境

如何結合 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 命令會提示我們填寫的一些常見項目信息:

  1. Package name: 你的項目的名稱。
    默認情況下,Poetry 會使用當前目錄的名稱作為項目名稱。
    我們可以直接按回車鍵接受默認值,或者輸入新的項目名稱。

  2. Version: 項目的版本號。
    默認格式為 0.1.0,我們可以根據需要修改。

  3. Description: 項目的簡短描述。
    這將幫助其他人了解我們的項目的用途。

  4. Author name: 項目作者的名稱。
    我們可以輸入我們的名字或團隊名稱。

  5. License: 項目的開源協議。
    例如 “MIT” 是一種常見的選擇。

  6. Python version: 項目所需的 Python 版本范圍。
    例如,輸入 ^3.11 表示項目兼容 Python 3.11 及以上版本。

  7. 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 虛擬環境,有效避免項目間的依賴沖突,提升開發效率。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/909063.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/909063.shtml
英文地址,請注明出處:http://en.pswp.cn/news/909063.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

defineAsyncComponent

下面,我們來系統的梳理關于 defineAsyncComponent 懶加載 的基本知識點: 一、異步組件核心概念 1.1 什么是異步組件? 異步組件是 Vue 中一種按需加載組件的機制,允許將組件代碼拆分為獨立的 chunk,在需要時再從服務器加載。這種技術能顯著提升應用初始加載速度。 1.2 為…

ANeko v1.0.3 | 在手機里養只寵物貓 實時互動 動畫細膩

ANeko是一款專為喜歡貓咪的用戶設計的互動養寵應用。它讓你在手機屏幕上擁有一只可愛的貓咪動畫,這只貓咪會實時跟隨你的手指觸摸軌跡,帶來生動有趣的互動體驗。該應用不僅保留了用戶熟悉的交互式貓動畫,還結合了現代高清圖形技術&#xff0c…

人工智能AI

AI 簡介 AI 使我們能夠生成可以改進衛生保健的出色軟件,讓人能夠克服生理上的不便,改進智能基礎結構,創造令人驚嘆的娛樂體驗,甚至拯救地球! 什么是 AI? 簡而言之,AI 就是一種模仿人類行為和能力的軟件。 關鍵工作負載包括: 機器學習 - 它通常是 AI 系統的基礎,也是…

Vue 中 data 選項:對象 vs 函數

Vue 中 data 選項&#xff1a;對象 vs 函數 在 Vue 開發中&#xff0c;data 選項可以使用對象或函數形式&#xff0c;了解它們的使用場景非常重要。下面我將通過一個直觀的示例來展示兩者的區別和適用場景。 <!DOCTYPE html> <html lang"zh-CN"> <h…

python打卡第49天

知識點回顧&#xff1a; 通道注意力模塊復習空間注意力模塊CBAM的定義 CBAM 注意力模塊介紹 從 SE 到 CBAM&#xff1a;注意力機制的演進 之前我們介紹了 SE&#xff08;Squeeze-and-Excitation&#xff09;通道注意力模塊&#xff0c;其本質是對特征進行增強處理。現在&#…

iOS和桌面雙端抓包實戰經驗總結:Sniffmaster與常見工具組合解析

近幾年&#xff0c;移動端和桌面端的網絡調試工作變得越來越“棘手”。過去一個代理證書搞定的場景&#xff0c;現在常常被HTTPS加密、雙向驗證、App安全策略給難住。特別是涉及到iOS平臺時&#xff0c;很多傳統抓包方案都不再適用。作為一名在多個平臺開發和測試的程序員&…

cloudstudio騰訊云:matplotlib 設置中文字體

檢查可用字體&#xff1a; import matplotlib.font_manager as fm fonts [f.name for f in fm.fontManager.ttflist] print(fonts) # 查看系統中可用的字體列表# 列出所有中文字體文件 !fc-list :langzh沒有中文字體&#xff0c;需要下載 !sudo apt-get install fonts-wqy-m…

Django中的ORM的使用步驟----以MySQL為例

1 以純Python的形式創建項目虛擬環境 2 命令安裝Django 3 在當前虛擬環境目錄下命令創建Django項目 4 命令創建app 注&#xff1a; 若想將創建的子應用存放到指定目錄&#xff0c;如app&#xff0c; 那么需要先手動創建app目錄&#xff0c;再手動創建子應用目錄&#xff0c;如o…

Rust 學習筆記:通過 Send 和 Sync trait 實現可擴展并發性

Rust 學習筆記&#xff1a;通過 Send 和 Sync trait 實現可擴展并發性 Rust 學習筆記&#xff1a;通過 Send 和 Sync trait 實現可擴展并發性Send trait&#xff1a;允許在線程之間轉移所有權Sync trait&#xff1a;允許多線程訪問手動實現 Send 和 Sync 是不安全的練習題 Rust…

【C++】第十一節—一文詳解vector(使用+楊輝三角+深度剖析+模擬實現+細節詳細補充)

Hi&#xff0c;我是云邊有個稻草人&#xff0c;偶爾中二的C領域博主^(*&#xffe3;(oo)&#xffe3;)^&#xff0c;與你分享專業知識—— C_本篇博客所屬專欄—持續更新中—歡迎訂閱喔 目錄 一、vector的介紹及使用 1.1 vector的介紹 1.2 vector的使用 &#xff08;1&…

華為智選攜手IAM:突破技術邊界,重塑智慧健康家居新時代

華為智選與IAM的聯動創研&#xff0c;是科技與健康兩大領域深度結合的推動者&#xff0c;更是健康智能家電創新的引領者。他們不再只是產品的制造商&#xff0c;而是生活方式的革新者——用創新科技重構健康生活&#xff0c;用智慧生態重塑家居體驗。在這場深度的跨界融合中&am…

基于cornerstone3D的dicom影像瀏覽器 第三十一章 從PACS服務加載圖像

文章目錄 前言一、兩個服務接口1. 查詢檢查接口2. 查詢圖像接口 二、查詢界面組件三、修改歸檔總結 前言 "基于cornerstone3D的dicom影像瀏覽器"系列文章中都是加載本地文件夾的的dicom圖像。 作為一個合格的dicom影像瀏覽器需要對接PACS服務端&#xff0c;從PACS服…

STM32+rt-thread判斷是否聯網

一、根據NETDEV_FLAG_INTERNET_UP位判斷 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…

基于React Native開發HarmonyOS 5.0醫療類應用

隨著HarmonyOS 5.0的發布和React Native技術的成熟&#xff0c;開發者現在可以利用React Native框架為HarmonyOS平臺構建高性能的跨平臺醫療應用。 一、技術選型與優勢 1.React Native HarmonyOS的組合優勢 &#xff08;1&#xff09;跨平臺能力??&#xff1a;React Nati…

姜偉生《統計至簡》

姜偉生《統計至簡》 系列叢書之一 這套書圖真漂亮&#xff0c;字間距也大&#xff0c;特別合適直接作為課件。但是理論上弱&#xff0c;有的地方算法也get不點上。適合初學者&#xff0c;因為能看圖說話&#xff1b;又不適合初學者&#xff0c;因為沒有解析、沒有分析。 這學…

滾動—橫向滾動時,如何直接滾動到對應的內容板塊

使用scrollIntoView方法方法解讀 scrollIntoView 是 HTML 元素&#xff08;HTMLElement&#xff09;的一個方法。當調用該方法時&#xff0c;它會嘗試將調用它的元素滾動到瀏覽器的可視區域內。這個方法特別適用于處理頁面上的滾動行為&#xff0c;比如讓用戶能夠快速定位到頁面…

HTML5 定位網頁元素

1. 定位&#xff08;position&#xff09; position&#xff1a;static&#xff08;標準&#xff09; position&#xff1a;relative&#xff08;相對定位&#xff09; 偏移量的方向 相對定位的規律 浮動元素設置相對定位 position&#xff1a;absolute&#xff08;絕對…

分類數據集 - 植物分類數據集下載

數據集介紹&#xff1a;植物分類數據集&#xff0c;真實場景高質量圖片數據&#xff1b;適用實際項目應用&#xff1a;自然場景植物分類項目&#xff0c;以及作為通用分類數據集場景數據的補充&#xff1b;數據集類別&#xff1a;標注說明&#xff1a;采用文件夾來區分不同的目…

?React Hooks 的閉包陷阱問題

這是主包在面試中遇到的一道題目&#xff0c;面試官的問題是&#xff1a;"這個頁面初次展示出來時Count和step的值是什么&#xff0c;我點擊按鈕count和step的值有什么變化&#xff1f;“ 這個題目主包回答的不好&#xff0c;所以想做一個總結。 題目 import React, { …

新基建浪潮下:中國新能源汽車充電樁智慧化建設與管理實踐

在新基建戰略的強力推動下&#xff0c;中國新能源汽車充電樁建設正迎來智慧化升級的重要機遇期。作為連接能源革命與交通革命的關鍵節點&#xff0c;充電基礎設施的智能化轉型不僅關乎新能源汽車產業的可持續發展&#xff0c;更是構建新型電力系統的重要支撐。當前&#xff0c;…