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…