当前位置: 首页 > news >正文

使用 Conda 工具链创建 UV 本地虚拟环境全记录——基于《Python 多版本与开发环境治理架构设计》

Python 多版本环境治理理念驱动的系统架构设计:三维治理、四级隔离、五项自治 原则-CSDN博客

Python 多版本与开发环境治理架构设计-CSDN博客 

【终极实战】Conda/Poetry/Virtualenv/Pipenv/Hatch 多工具协同 + Anaconda×PyCharm:构建 Python 全版本栈隔离体系与虚拟环境自动化管理指南-CSDN博客 

Python 多版本开发环境治理:理论架构与实践-CSDN博客 

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

使用 Conda 工具链创建 Poetry 本地虚拟环境全记录——基于《Python 多版本与开发环境治理架构设计》_windows poetry conda 创建一个项目,项目使用poetry的虚拟环境,虚拟环境在项-CSDN博客 

【理念●体系】路径治理篇:打造可控、可迁移、可复现的 AI 开发路径结构-CSDN博客 

Python 虚拟环境与构建工具全景指南:功能介绍与对比分析-CSDN博客

《Anaconda 精简路径治理》系列 · 番外篇:路径结构推荐方案全解-CSDN博客 


使用 Conda 工具链创建 UV 本地虚拟环境全记录

——基于《Python 多版本与开发环境治理架构设计》

✅ 本文目标:创建一个完全本地化、可迁移、可复现的 .venv 项目环境,并实现 UV 工具链的自包含管理

🔍 本方案适用于追求:

  • 工具链隔离、自包含 .venv

  • 构建环境可迁移 / 可打包 / 跨 IDE 可复现

  • 基于 Conda 提供 Python 多版本基础但避免污染项目结构


一、环境前提说明

  • ✅ 操作系统:Windows 11

  • ✅ Conda 环境根目录:D:\Conda\

  • ✅ 当前使用 Python 版本:3.12.11

  • ✅ Conda 环境名:py312

  • ✅ 项目路径:F:\PythonProjects\Win_ComfyUI

该项目将使用 Conda 的 Python 解释器,配合 uv 工具,创建 .venv 虚拟环境并实现工具链本地化。

Conda 环境名:py312 工具链路径树状图示

├─ 环境路径(D:\Conda\envs\py312\)
│  └─ py312 环境(Python 3.12.11)
│     ├─ python.exe: D:\Conda\envs\py312\python.exe
│     ├─ 工具路径: D:\Conda\envs\py312\Scripts\
│     │  ├─ poetry.exe: D:\Conda\envs\py312\Scripts\poetry.exe
│     │  ├─ virtualenv.exe: D:\Conda\envs\py312\Scripts\virtualenv.exe
│     │  ├─ pipenv.exe: D:\Conda\envs\py312\Scripts\pipenv.exe
│     │  ├─ uv.exe: D:\Conda\envs\py312\Scripts\uv.exe      <===> uv 环境管理工具在这里
│     │  └─ hatch.exe: D:\Conda\envs\py312\Scripts\hatch.exe
│     ├─ PyCharm解释器路径: D:\Conda\envs\py312\python.exe
│     └─ 终端命令示例:
│        ├─ poetry: "D:\Conda\envs\py312\Scripts\poetry.exe" init
│        ├─ virtualenv: "D:\Conda\envs\py312\python.exe" -m virtualenv .venv
│        ├─ pipenv: "D:\Conda\envs\py312\Scripts\pipenv.exe" install requests
│        ├─ uv: "D:\Conda\envs\py312\Scripts\uv.exe" new .venv
│        └─ hatch: "D:\Conda\envs\py312\Scripts\hatch.exe" env create

二、创建本地 .venv 虚拟环境

确保激活 py312 环境后,进入项目路径并执行:

 

conda activate py312
uv venv .venv

 

这将在项目目录下创建一个本地 .venv 文件夹,并自动激活。

验证当前 Python 解释器来源:

where python

输出应类似:

F:\PythonProjects\Win_ComfyUI\.venv\Scripts\python.exe
D:\Conda\envs\py312\python.exe
...(其他路径略)

✅ 首位为 .venv 表示本地虚拟环境创建成功。

 


三、检查 uv 工具链路径来源

接下来查看当前系统中 uv 的来源:

where uv

输出类似:

D:\Conda\envs\py308\Scripts\uv.exe
D:\Conda\envs\py309\Scripts\uv.exe
...
D:\Conda\envs\py312\Scripts\uv.exe

此时 uv 仍是 Conda 全局安装的版本,不具备本地化特性。

 


四、实现 uv 工具链的本地化安装

为实现 .venv 工具链的自包含,我们在该虚拟环境中再次安装 uv 本体:

uv pip install uv

🔄 安装完毕后,再次运行:

where uv

输出首行为:

F:\PythonProjects\Win_ComfyUI\.venv\Scripts\uv.exe
...(其余仍为全局 Conda 环境)

查看版本验证是否为本地调用:

uv -V

输出示例:

uv 0.8.0 (0b2357294 2025-07-17)

✅ 此时,uv.exe 已实现 完全本地化封装,确保无 Conda 依赖!

 


五、路径结构示意图(文本版)

F:\PythonProjects\Win_ComfyUI\
├── .venv\
│   ├── Scripts\
│   │   ├── python.exe
│   │   └── uv.exe  ← 本地化工具链
│   └── Lib\
│       └── site-packages\
│           └── uv\  ← 本地安装包
├── pyproject.toml(如需)
└── 项目代码...

六、.venv + UV 本地化的优势总结

特性效果说明
✅ 自包含工具链.venv\Scripts\uv.exe 可独立运行
✅ 可迁移拷贝整个项目文件夹即可复现环境
✅ 跨 IDE 复现一致不依赖系统环境变量或 Conda 激活
✅ 简洁结构无复杂 Conda 缓存与多级路径干扰
✅ CI/CD 支持适合打包、构建、部署流程

七、对比结构参考:Conda 工具链布局回顾

以下为 D:\Conda\envs\py312 下的完整构建工具布局,供参考对比:

├─ 环境路径(D:\Conda\envs\py312\)
│  └─ py312 环境(Python 3.12.11)
│     ├─ python.exe
│     ├─ Scripts\
│     │  ├─ poetry.exe
│     │  ├─ virtualenv.exe
│     │  ├─ pipenv.exe
│     │  ├─ uv.exe
│     │  └─ hatch.exe
│     ├─ PyCharm解释器路径: D:\Conda\envs\py312\python.exe
│     └─ 常用命令示例:
│        ├─ poetry: "...\Scripts\poetry.exe" init
│        ├─ virtualenv: python -m virtualenv .venv
│        ├─ pipenv: pipenv install requests
│        ├─ uv: uv new .venv
│        └─ hatch: hatch env create

而我们的 .venv 项目结构中,不依赖这些全局工具,全部自包含在项目目录。


八、结语

UV 作为新一代 Python 构建工具,不仅速度快、功能全,而且支持现代项目管理标准。结合 .venv 的路径治理理念,能在不依赖 Conda 的前提下构建出:

✅ 快速创建 → ✅ 工具自包含 → ✅ 可复制迁移 → ✅ 多 IDE 无差异调用

这一实践值得推广,也适用于教学部署、开源分发、跨平台封装等场景。


《Anaconda 精简路径治理》系列 · 番外篇Conda 虚拟环境路径结构方案全解——六种路径布局对比、优劣与治理建议-CSDN博客

 Anaconda 路径精简后暴露 python 及工具到环境变量的配置记录 [二]-CSDN博客

【实践篇】基于.venv 的 ComfyUI 环境同配置迁移:pyvenv.cfg 路径修改法-CSDN博客 

http://www.dtcms.com/a/291823.html

相关文章:

  • Docker实战:使用Docker部署TeamMapper思维导图工具
  • 推送git问题_查询索引文件——查导致的文件
  • 按键精灵脚本:自动化利刃的双面性 - 从技术原理到深度实践与反思
  • windows10安装node-v18.18.0-x64安装
  • async/await 函数
  • 【CVPR 2025】低光增强RT-X Net( 红外辅助结构引导)--part1论文精读
  • 开发者的AI认知指南:用大模型重新理解人工智能(下)
  • 公交车客流人数统计管理解决方案:智能化技术与高效运营实践
  • 九鼎X8390 开发板 联发科 MT8390 / MT8370 芯片平台
  • 华为高斯Gauss数据库版本与兼容协议--详解(附带Gorm连接示例代码)
  • 5G工业路由器如何凭借高性价比助力多行业数字化转型?
  • 2025 LCP用2,6酸市场前瞻:全面洞察与投资潜力预测
  • iOS组件化详解
  • Windows 环境下,使用 VirtualBox 安装 Ubuntu 虚拟机
  • 34、鸿蒙Harmony Next开发:使用动画-转场动画
  • JMeter groovy 编译成.jar 文件
  • RabbitMQ--批量处理
  • 【Zephyr开发实践系列】09_LittleFs文件系统操作
  • 在easyui中如何自定义表格里面的内容
  • 目标检测系列(六)labelstudio实现自动化标注
  • vue2 webpack 部署二级目录、根目录nginx配置及打包配置调整
  • 容器化部署 Tomcat + MySQL 实战指南:从入门到进阶
  • MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
  • 架构演进核心路线:从离线仓库到实时湖仓一体
  • LLM评测框架Ragas Agents or Tool Use Cases指标(解决了Ollama推理框架不支持的问题)
  • 微软徽标认证是什么?如何快速获取驱动签名?
  • Linux操作系统从入门到实战(十二)Linux操作系统第一个程序(进度条)
  • 【用户管理】usermod设置主组和附加组(三)
  • es搜索实现既能模糊查询又能分词查询
  • [Dify] -进阶10- Dify 的用户输入结构:变量、参数、文件上传全解析