使用 Conda 工具鏈創建 Poetry 本地虛擬環境全記錄——基于《Python 多版本與開發環境治理架構設計》

Python 多版本治理理念(Windows 平臺 · 零基礎友好)-CSDN博客

Python 多版本與開發環境治理架構設計-CSDN博客

使用命令行創建項目本地的 Poetry 虛擬環境實戰演示 —— 基于《Python 多版本與開發環境治理架構設計》的最佳實踐-CSDN博客

一、Python311 環境工具鏈準備
1. 環境結構與工具路徑
python311 環境(Python 3.11)
├─ python.exe: D:\ProgramData\anaconda3\envs\python311\python.exe
├─ 工具路徑: D:\ProgramData\anaconda3\envs\python311\Scripts\
│  ├─ poetry.exe: 依賴管理工具
│  ├─ virtualenv.exe: 虛擬環境創建工具
│  ├─ pipenv.exe: 另一種依賴管理工具
│  ├─ uv.exe: 輕量級虛擬環境工具
│  └─ hatch.exe: Python項目管理工具
├─ PyCharm解釋器路徑: 同上
└─ 終端命令示例:├─ poetry: "D:\...\poetry.exe" init├─ virtualenv: "D:\...\python.exe" -m virtualenv .venv└─ 其他工具調用方式類似

2. 工具鏈路徑準備
│  │  
│  ├─ python311 環境(Python 3.11)  
│  │  ├─ python.exe: D:\ProgramData\anaconda3\envs\python311\python.exe  
│  │  ├─ 工具路徑: D:\ProgramData\anaconda3\envs\python311\Scripts\  
│  │  │  ├─ poetry.exe: D:\ProgramData\anaconda3\envs\python311\Scripts\poetry.exe  

二、Poetry 虛擬環境創建五步流程
# 1、交互式生成項目配置文件pyproject.toml
"D:\ProgramData\anaconda3\envs\python311\Scripts\poetry.exe" init# 2、強制使用Conda環境中的Python 3.11創建虛擬環境
poetry env use "D:\ProgramData\anaconda3\envs\python311\python.exe"# 3、激活Windows系統下的本地虛擬環境
.venv\Scripts\activate# 4、在虛擬環境中安裝Poetry,實現工具鏈本地化
pip install poetry# 5、在虛擬環境中驗證工具鏈的本地化
python -V
where python
poetry -V
where poetry

步驟詳解:?

1. 初始化 Poetry 項目
"D:\ProgramData\anaconda3\envs\python311\Scripts\poetry.exe" init  # 顯式調用Conda環境的Poetry

?

F:\PythonProjects\suna>"D:\ProgramData\anaconda3\envs\python311\Scripts\poetry.exe" init

This command will guide you through creating your pyproject.toml config.

Package name [suna]: ?? ?#輸入項目名稱?或 按回車鍵使用默認名稱[suna]?
Version [0.1.0]: ?? ?#輸入項目版本號?或 按回車鍵使用默認版本[0.1.0]
Description []: ?AI Agent SUNA? ?#輸入項目描述信息 或 按回車鍵 跳過輸入
Author [****** <******@qq.com>, n to skip]:? 按回車鍵? #按回車鍵確認自動關聯的作者信息 或 輸入 n 跳過
License []: ?MIT?? ?#輸入項目許可證類型?或 按回車鍵 跳過輸入
Compatible Python versions [>=3.8]: ?^3.11?? ?#修改支持的python版本?或 按回車鍵 跳過輸入(當前默認 >=3.8 ,我輸入^3.11修改為支持3.11版本

Would you like to define your main dependencies interactively? (yes/no) [yes] NO? ?#輸入項目的主要依賴項信息?或 按回車鍵 跳過輸入
Would you like to define your development dependencies interactively? (yes/no) [yes] NO? ?#輸入項目的開發依賴項信息 或 按回車鍵 跳過輸入
Generated file

[project]
name = "suna"
version = "0.1.0"
description = "AI Agent SUNA"
authors = [
? ? {name = "******",email = "******@qq.com"}
]
license = {text = "MIT"}
readme = "README.md"
requires-python = "^3.11"
dependencies = [
]


[build-system]
requires = ["poetry-core>=2.0.0,<3.0.0"]
build-backend = "poetry.core.masonry.api"


Do you confirm generation? (yes/no) [yes] YES? ? #你確認生成嗎? 輸入 YES 確認
?

?

建議:除非必須交互輸入的外,創建 poetry 時,能不配置的先不配置(避免因配置錯誤而創建環境受阻),也就是輸入NO 然后回車 或 直接回車使用默認配置。?

生成的核心配置文件

pyproject.toml 內容參考:

[project]
name = "suna"
version = "0.1.0"
description = "AI Agent SUNA"
authors = [{name = "******",email = "******@qq.com"}
]
license = {text = "MIT"}
readme = "README.md"
requires-python = "^3.11"
dependencies = [
][build-system]
requires = ["poetry-core>=2.0.0,<3.0.0"]
build-backend = "poetry.core.masonry.api"

2. 配置本地虛擬環境生成路徑(可選)

Poetry 有時會默認將虛擬環境創建在系統的緩存目錄下,而不是項目目錄中。

# 配置Poetry在項目目錄內創建虛擬環境
poetry config virtualenvs.in-project true

3. 強制指定 Python 解釋器創建環境

# 使用Conda環境中的Python 3.11創建虛擬環境
poetry env use "D:\ProgramData\anaconda3\envs\python311\python.exe"# 關鍵輸出:
# Creating virtualenv suna in F:\PythonProjects\suna\.venv

4. 激活本地虛擬環境

# Windows系統下激活虛擬環境
.venv\Scripts\activate# 狀態確認:
# 命令行前綴變為 (suna-py3.11) (python311)

5. 工具鏈本地化(推薦步驟)

# 在虛擬環境中安裝Poetry,實現工具鏈隔離
pip install poetry

三、環境獨立性驗證
1. 路徑驗證(激活后)

# 檢查Python路徑(首位為本地.venv)
where python  
# 輸出: F:\PythonProjects\suna\.venv\Scripts\python.exe# 檢查Poetry路徑(新增本地路徑)
where poetry  
# 輸出: F:\PythonProjects\suna\.venv\Scripts\poetry.exe

2. 脫離 Conda 環境驗證

# 退出所有環境后重新激活
exit          # 退出Poetry虛擬環境
conda deactivate  # 退出Conda環境
.venv\Scripts\activate      # 僅通過本地.venv激活Poetry環境# 最終驗證:
python -V  # 仍顯示 Python 3.11.11
where python   # 本地.venv 路徑內的 python 顯示在首位
where poetry  # 本地.venv 路徑內的 poetry 顯示在首位

四、技術原理與治理價值
  1. 工具鏈借用模式
    通過 Conda 環境的 Poetry 工具鏈初始化項目,僅作為 “構建工具”,避免直接依賴 Conda 環境開發。

  2. 三級隔離體系

    • 工具鏈層:Conda 提供基礎工具
    • 環境層:Poetry 在項目目錄生成.venv
    • 應用層:依賴與代碼封裝在.venv 中
  3. 工程化價值

    • 環境自包含:.venv 可隨項目遷移,通過poetry install重建
    • 版本可控:pyproject.toml明確 Python 版本邊界,避免依賴沖突

此流程嚴格遵循《Python 多版本與開發環境治理架構設計》中的最佳實踐,為 AI 項目、開源庫等對環境穩定性要求高的場景提供了標準化解決方案。

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

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

相關文章

北小菜, python , onvif

第一節&#xff1a; 首先是環境的搭建。 環境的搭建。 roottopeet:/home/topeet/source_code/wang_onvif_python# python -m venv venv Command python not found, did you mean:command python3 from deb python3command python from deb python-is-python3 roottopeet:/ho…

TinyWebserver學習(9)-HTTP

一、相關知識 1、有限狀態機&#xff1a; 有限狀態機&#xff08;Finite State Machine, FSM&#xff09;是一種用于描述對象在其生命周期內可能經歷的不同狀態及其狀態轉換規則的模型。它廣泛應用于游戲開發、網絡協議、詞法解析、UI邏輯控制等領域。以下是C中有限狀態機的簡…

2025最新軟件測試面試八股文

&#x1f345; 點擊文末小卡片&#xff0c;免費獲取軟件測試全套資料&#xff0c;資料在手&#xff0c;漲薪更快 Part1 1、你的測試職業發展是什么&#xff1f; 測試經驗越多&#xff0c;測試能力越高。所以我的職業發展是需要時間積累的&#xff0c;一步步向著高級測試工程師…

React 強大的表單驗證庫formik之集成Yup、React Hook Form庫

簡介 Formik 是為 React 開發的開源表單庫&#xff0c;提供狀態管理、驗證和提交處理功能&#xff0c;可簡化復雜表單的開發。 核心優勢 ?- 狀態管理 ?&#xff1a;自動跟蹤輸入值、驗證狀態和提交進度&#xff0c;無需手動編寫狀態邏輯。 ? ?- 驗證功能 ?&#xff1a;…

破解風電運維“百模大戰”困局,機械版ChatGPT誕生?

面對風機87%的非計劃停機&#xff0c;30多個專用模型為何束手無策&#xff1f;一套通用大模型如何實現軸承、齒輪、轉子“一站式”健康管理&#xff1f;一、行業痛點&#xff1a;風機運維深陷“碎片化泥潭”1.1 87%停機故障由多部件引發齒輪斷裂、軸承磨損、電機短路……風電故…

Spring Bean 控制銷毀順序的方法總結

控制Spring Bean銷毀順序的方法 在Spring框架中&#xff0c;有幾種方法可以控制Bean的銷毀順序。以下是主要的幾種方式及其示例代碼&#xff1a; 1. 實現DisposableBean接口 實現DisposableBean接口并重寫destroy()方法&#xff0c;Spring會按照依賴關系的相反順序調用這些方…

Gemini CLI MCP 教程:設置、命令與實際使用

如果你想要為任何 MCP 服務器設置 Gemini CLI,這個快速教程將為你提供指導。 Gemini CLI 結合 MCP(模型上下文協議)服務器,改變了你通過自然語言命令進行編碼的方式。 你可以要求 Gemini 分析你的代碼庫、管理文件、查詢數據庫,或通過對話提示與 API 交互。 MCP 服務器連…

LangChain 構建向量數據庫和檢索器

LangChain 構建向量數據庫和檢索器實戰 隨著大語言模型&#xff08;LLM&#xff09;在各類 AI 應用中不斷普及&#xff0c;RAG&#xff08;Retrieval-Augmented Generation&#xff0c;檢索增強生成&#xff09;逐漸成為提升回答準確率與上下文關聯性的重要技術路徑。 一、什…

基于 LangChain 實現通義千問 + Tavily 搜索 Agent 的簡單實踐

文章目錄 一、相關背景1.1 LangChain 簡介1.2 通義千問&#xff08;Tongyi Qianwen&#xff09;1.3 Tavily 實時搜索引擎1.4 架構總覽 二、環境配置設置 API 密鑰 三、 Tavily 搜索四、智能 Agent 示例&#xff1a;自動判斷是否調用 Tavily4.1 初始化 Agent4.2 提問兩個問題&am…

SegGPT: 在上下文中分割一切

摘要 我們提出了 SegGPT&#xff0c;一個在上下文中執行“分割一切”的通用模型。我們將各種分割任務統一為一個通用的上下文學習框架&#xff0c;通過將不同類型的分割數據轉換為相同的圖像格式來兼容這些差異。SegGPT 的訓練被建模為一個帶有隨機顏色映射的上下文著色問題。…

【網絡】Linux 內核優化實戰 - net.core.busy_read

目錄 核心功能工作原理與優勢配置方式1. 臨時配置&#xff08;重啟失效&#xff09;2. 永久配置&#xff08;重啟生效&#xff09; 與 net.core.busy_poll 的協同作用適用場景與注意事項適用場景&#xff1a;注意事項&#xff1a; 總結 net.core.busy_read 是 Linux 內核中與網…

alpine安裝及配置nodejs開發測試環境

在Alpine Linux上安裝和使用Node.js&#xff0c;打造開發和測試的環境。 apk倉庫打開社區的源。 先在命令行中使用命令apk search nodejs npm yarn對倉庫源進行搜索&#xff0c;&#xff0c;看看nodejs、yarn、npm的版本情況。 localhost:~# apk search nodejs npm yarn nod…

Apache Commons Pool中的GenericObjectPool詳解

GenericObjectPool 是 Apache Commons Pool 庫中的核心類&#xff0c;用于實現對象的池化管理&#xff0c;適用于數據庫連接、HTTP 客戶端、線程等昂貴資源的復用。以下從核心概念、工作原理、參數配置、使用場景及最佳實踐等方面詳細解析&#xff1a; ?? 一、核心概念與組成…

攻防世界CTF題目解析系列————(1)

題目來源:攻防世界wife_wife 打開題目之后&#xff0c;發現登錄界面&#xff0c;然后嘗試弱口令&#xff0c;sql二次注入&#xff0c;xss發現都沒有&#xff0c;然后看見下面go register&#xff08;去注冊&#xff09;按鈕 成功注冊&#xff08;username和password隨便搞&…

楚存科技SD NAND貼片式T卡—高性能存儲解決方案、賦能AI智能硬件

楚存科技SD NAND貼片式T卡—高性能存儲解決方案、賦能AI智能硬件應用 在 AIoT 技術重構產業生態的時代浪潮中&#xff0c;智能硬件正從單一功能終端向數據樞紐演進 —— 智能家居設備日均產生 TB 級交互數據&#xff0c;工業物聯網傳感器需實時存儲生產參數&#xff0c;車載智…

Python[數據結構及算法 --- 查找]

一.順序查找&#xff08;無序表&#xff09;&#xff1a; def sequentialSearch(alist, item):pos 0found Falsewhile pos < len(alist) and not found:if alist[pos] item:found Trueelse:pos pos 1return foundtestlist [1, 2, 32, 8, 17, 19, 42, 13, 0] print(s…

Seata Saga模式實戰:Java微服務中的分布式事務管理

在分布式系統中&#xff0c;Saga模式是一種用于管理跨多個服務的事務的柔性事務解決方案。它通過將長事務拆分為多個本地事務&#xff08;每個事務對應一個服務的操作&#xff09;&#xff0c;并通過補償機制保證最終一致性。以下是Java中Saga模式的詳細介紹&#xff0c;包括實…

若依學習筆記1-validated

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- 保證 Spring AOP 相關的依賴包 --><dependency><groupId>org.springframework.boot<…

Excel 如何處理更復雜的嵌套邏輯判斷?

處理復雜的嵌套邏輯判斷&#xff0c;是Excel進階路上必然會遇到的一道坎。當簡單的IF函數“套娃”變得冗長、難以閱讀和維護時&#xff0c;我們就需要更高級、更清晰的工具。 這里介紹三種從基礎到高級的處理方法&#xff1a; 傳統的 IF 函數嵌套 (經典&#xff0c;但容易混亂)…

使用Claude和MCP增強Selenium

1.配置MCP服務器打開Claude Desktop—>Settings—>Developer—>Edit Config{"mcpServers": {"selenium": {"command": "npx","args": ["-y", "angiejones/mcp-selenium"]}} }配置完成后重啟Cl…