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.pswp.cn/diannao/92679.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/92679.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/92679.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一文通透mamba2「力证Transformer are SSM」:从SSM、半可分矩阵、SMA、SSD到mamba2

前言 实话说&#xff0c;过去一两月一直忙着我司两大类项目的推进 一类是正在逐一上线基于大模型的论文翻译、论文审稿、论文对话、论文修订/润色、论文idea提炼等等(截止到24年8月底&#xff0c;其中的审稿和翻译已上线七月官网 )一类是正在抓紧做面向一个个工厂的具身智能机…

【Java基础06】ArrayList

文章目录1.ArrayList1.1 集合的基本使用1.2 集合的创建和成员方法1.3 练习一&#xff1a;集合的遍历基本数据类型对应的包装类1.4 练习二&#xff1a;使用集合存储并遍历学生对象1.4 练习三&#xff1a;添加用户对象并判断是否存在写方法要思考的步骤1.5 练习四&#xff1a;添加…

ddos 放在多个云主机,同时运行

1. 起因&#xff0c; 目的: 我打开 grok, 被 cloudflare 拦截&#xff0c;问我是不是机器人。 这个情况&#xff0c;如果是别的小网站也就算了&#xff0c;很正常。 大公司也搞这种东西&#xff0c;要么是偷懒&#xff0c;要么是太小气了。 一气之下&#xff0c;我决定写个 ddo…

lspci/setpci用法小结

目录 1.lspci用法小结 2.lspci -t 3.setpci用法小结 1.lspci用法小结 参考博客&#xff1a;【PCIe】lspci用法小结 - 知乎 lspci是一个用来显示系统中所有PCI总线设备或者连接到该总线上所有设备的工具 man lspci lspci(8) …

光通信从入门到精通:PDH→DWDM→OTN 的超详细演进笔记

光通信从入门到精通&#xff1a;PDH→DWDM→OTN 的超详细演进笔记 作者&#xff1a; 脱脱克克 日期&#xff1a;2025-07-24 关键词&#xff1a;DWDM、OTN、G.709、光纤、带宽、C-band、L-band、DSP、ROADM 摘要 本文用一条“高速公路”的比喻&#xff0c;把 40 年光传输技术演进…

安全初级——网页

网页代码<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>用户登录</title><script src&…

JVM原理及其机制(二)

目录 一 . 垃圾回收机制&#xff08;GC&#xff09; 二 . 垃圾回收的具体步骤 &#xff08;1&#xff09;先找出谁是垃圾 方案一&#xff1a;引用计数 方案二&#xff1a;可达性分析 &#xff08;2&#xff09;释放垃圾的内存空间 方案一&#xff1a;标记清除 方案二…

Solo:基于 zkHE 的身份验证协议,构建 Web3 可信匿名身份层

“Solo 正在基于其独创的 zkHE 架构&#xff0c;构建一套“可信匿名”的链上身份系统&#xff0c;有望打破长期困扰 Web3 的“不可能三角”&#xff0c;即在隐私保护、身份唯一性与去中心化可验证性之间实现兼得。”前不久&#xff0c;Web3 身份层项目 Solo 宣布完成 120 万美元…

【Excel函数】将数据非空的字段筛选出来放在新列

一、需求描述 将对应数据不为空的字段筛选出来放在新的列里 二、解析 IFERROR(INDEX(B$2:B$10,SMALL(IF(C$2:C$10<>"",ROW(C$2:C$10)-ROW(C$2)1),ROW(A1))),"") 1. IF(C$2:C$10<>"", ROW(C$2:C$10)-ROW(C$2)1) 作用&#xff1a;…

【unity游戏开发入门到精通——组件篇】unity的粒子系统力场 (Particle System Force Field)实现如旋风、吸引力、风吹效果等

文章目录前言一、参数介绍二、Particle System Force Field 的核心特性三、如何使用1、粒子系统开启外力选项2、然后再添加粒子系统力场 (Particle System Force Field)即可参考专栏推荐完结前言 Unity的粒子系统是一个非常强大的工具&#xff0c;可以用来创建各种动态效果&am…

JS逆向基础( AES 解密密文WordArray和Uint8Array实战②)

1. Uint8Array 就像「快递柜」 每个格子固定放「1 瓶饮料」(1 字节 = 8 位,范围 0-255 就像饮料编号) 比如装了 3 瓶:可乐(编号 255)、雪碧(10)、矿泉水(0) 这是超市通用的标准货架,任何工具(JS 内置功能)都认识这种摆放方式 用途:运输、存储所有二进制东西(图片…

论文阅读:《针对多目标优化和应用的 NSGA-II 综述》一些关于优化算法的简介

前言 提醒&#xff1a; 文章内容为方便作者自己后日复习与查阅而进行的书写与发布&#xff0c;其中引用内容都会使用链接表明出处&#xff08;如有侵权问题&#xff0c;请及时联系&#xff09;。 其中内容多为一次书写&#xff0c;缺少检查与订正&#xff0c;如有问题或其他拓展…

Elasticsearch(ES)安装

docker下安装ES 拉取镜像docker pull elasticsearch:7.4.0 创建文件夹 权限赋值 chmod -R 777 /usr/local/docker/es 创建配置 #可访问IP http.host: 0.0.0.0 # 跨域 http.cors.enabled: true http.cors.allow-origin: "*" 编写脚本并赋权 首先先返回上一级目录&…

Pycharm、Python安装及配置小白教程

本篇博客主要介绍了如何使用工具软件快速安装Pycharm和Python并完成基础配置。 目录 一、Python与Pycharm是什么&#xff1f; 二、安装工具软件 三、安装Python 四、安装Pycharm 五、配置Pycharm 1. 基础设置 2. 配置解释器 一、Python与Pycharm是什么&#xff1f; …

Redis数据库入门教程

Redis&#xff08;Remote Dictionary Server&#xff09;是一个开源的、基于内存的高性能键值存储系统&#xff0c;它可以用作数据库、缓存和消息中间件。本教程将带你从零开始全面学习Redis&#xff0c;涵盖基础概念、安装配置、数据结构、持久化机制以及与Python的交互等内容…

工业仪表识别(一)环境安装

仪表识别环境安装 &#xff11;&#xff0e;cuda cuda 11.8 intall&#xff08;cuda11.8、cuda12.6按照需求安装&#xff09; ref: https://developer.nvidia.com/cuda-11-8-0-download-archive?target_osLinux&target_archx86_64&DistributionUbuntu&target_vers…

闲庭信步使用图像验证平台加速FPGA的开发:第三十四课——车牌识别的FPGA实现(6)叠加车牌识别的信息

&#xff08;本系列只需要modelsim即可完成数字图像的处理&#xff0c;每个工程都搭建了全自动化的仿真环境&#xff0c;只需要双击top_tb.bat文件就可以完成整个的仿真&#xff0c;大大降低了初学者的门槛&#xff01;&#xff01;&#xff01;&#xff01;如需要该系列的工程…

Windows上用于跨平台开发的环境工具

1. MSYS2&#xff08;Minimal SYStem 2&#xff09; 一款模拟Unix环境的软件&#xff0c;可以执行unix命令。通过pacman管理工具&#xff0c;类似Ubuntu上apt-get&#xff0c;RedHat中的yum。 MSYS2最大好处就是能够在Windows上轻松编译一些由Unix环境工具链开发的工程&#…

【硬件-笔试面试题】硬件/电子工程师,笔试面试题-15,(知识点:DC-DC电源,BUCK电路,铁损,铜损)

目录 1、题目 2、解答 选项 A 选项 B 选项 C 选项 D 3、相关知识点 一、纹波 二、感量&#xff08;电感量L&#xff09; 三、开关频率f 四、铁损 五、铜损 题目汇总版&#xff1a; 【硬件-笔试面试题】硬件/电子工程师&#xff0c;笔试面试题汇总版&#xff0c;持…

Ethereum: 从 1e+21 到千枚以太币:解密 Geth 控制台的余额查询

大家好今天&#xff0c;我们来聊一个新手在接触以太坊节点时经常会遇到的场景。想象一下&#xff0c;我们成功运行了一个私有以太坊节点&#xff0c;并尝试查询一个账户的余额&#xff0c;然后我们看到了这样一个返回结果&#xff1a;1e21。 这是什么意思&#xff1f;是出错了&…