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

让 uv 直接使用 conda 的环境

在 python 开发的时候有时候可能需要 conda 来安装一些 C++ 的库。一般来说,我个人就简单使用 conda + pip 了。但这次,我希望同时借助 uv 来实现现代化的项目管理。本来是考虑 pixi 的,但是国内还是没有完整的 pixi 镜像源,网络访问总是会有一些问题。所以最后是考虑 conda + uv 来做。

那就有一个问题, uv 总是会自己创建环境,而不是直接操作 conda 的环境。我还想结合 VSCode 去用,它又只能选一个环境。总不能每次都手动去切换,所以还是研究了一下怎么可以让他们共享。

其实解决的办法说出来不麻烦,就是配置一下 UV_PROJECT_ENVIRONMENT , uv 就会直接用给定的环境了。当然了,这个环境变量总不能每次都设置,那可以在 conda 的 activate.d 里面去配置。

下面是一个完整的示例(假定已安装 conda ,不需要先安装 uv ):

第一步、创建 conda 环境

conda create -n uv_test python=3.13
conda activate uv_test

第二步、安装 uv

pip install uv

第三步、配置 activate.d

这可以使得在 conda activate uv_test 时,自动将 UV_PROJECT_ENVIRONMENT 设置为 CONDA_PREFIX 。为了能够在 deactivate 的时候还原,还需要额外记录一下当前值:

mkdir -p $CONDA_PREFIX/etc/conda/activate.d
cat <<EOF > $CONDA_PREFIX/etc/conda/activate.d/uv_project_environment.sh
if [ ! -z "\${UV_PROJECT_ENVIRONMENT+x}" ]; thenexport _OLD_UV_PROJECT_ENVIRONMENT_213A68C915574FBA88221868BC32025F="\$UV_PROJECT_ENVIRONMENT"
fi
export UV_PROJECT_ENVIRONMENT="\$CONDA_PREFIX"
EOFmkdir -p $CONDA_PREFIX/etc/conda/deactivate.d
cat <<EOF > $CONDA_PREFIX/etc/conda/deactivate.d/uv_project_environment.sh
if [ ! -z "\${_OLD_UV_PROJECT_ENVIRONMENT_213A68C915574FBA88221868BC32025F+x}" ]; thenexport UV_PROJECT_ENVIRONMENT="\$_OLD_UV_PROJECT_ENVIRONMENT_213A68C915574FBA88221868BC32025F"unset _OLD_UV_PROJECT_ENVIRONMENT_213A68C915574FBA88221868BC32025F
elseunset UV_PROJECT_ENVIRONMENT
fi
EOF

这两个命令比较复杂,写完后可以检查一下 $CONDA_PREFIX/etc/conda/activate.d/uv_project_environment.sh 文件和 $CONDA_PREFIX/etc/conda/deactivate.d/uv_project_environment.sh 文件内容是不是正确。

第四步、开用!

# 重新进入环境,让上述脚本得到执行
conda deactivate
conda activate uv_testuv init uv_test
cd uv_test
uv add csharp-like-filels -a  # 这里没有出现 .venv
uv pip show csharp-like-file  # 包出现在 conda 环境里

另外记录一下解决的过程,其实这个 UV_PROJECT_ENVIRONMENT 很难找。官方文档列出了一堆环境变量,根本不知道该用哪个。后面本来想转到 Poetry 看看,发现人家就是直接有 virtualenvs.create 的。但是我又懒得搞了,直接拿这个当关键词一搜,没想到发现这样一个 issue : https://github.com/astral-sh/uv/issues/6459 ,里面提到了 UV_PROJECT_ENVIRONMENT ,成功解决。

http://www.jsqmd.com/news/295133/

相关文章:

  • 人群仿真软件:SimWalk_(9).结果分析与可视化
  • 人群仿真软件:SimWalk_(10).案例学习与应用
  • 人群仿真软件:SimWalk_(10).人群应急疏散仿真
  • 人群仿真软件:SimWalk_(11).高级功能探索
  • 【MIMO通信】大规模多元MIMO系统中的低复杂混合预编码附Matlab代码
  • 【无人机三维路径规划】基于人工势场路径规划算法实现无人机UAV和自主水下航行器AUV路径规划附matlab代码
  • 从零开始学AI产品经理:4大方向选择+薪资分析+转型建议,建议收藏
  • AI产品经理与传统产品经理的区别,大模型时代产品经理进阶指南
  • Golang WebSocket的多客户端管理
  • 2026年的第一篇
  • 提升开题报告质量:9款人工智能工具与专业模板修改技巧分享
  • 9种AI驱动的高效工具组合,助力毕业论文开题报告模板修改
  • 学术研究新选择:9大智能工具改写毕业论文开题报告模板
  • 比话降AI vs 嘎嘎降AI:知网检测实测对比,哪款更适合你
  • 比话降AI vs 降迹灵:8元和2.3元效果差多少
  • 知网AIGC检测不通过?3步搞定从被退到通关
  • 毕业季必备:5款降AI工具帮你论文顺利过检
  • 3款知网降AI工具实测:比话、PaperRed、嘎嘎效果对比
  • 2026年5款论文降AI工具亲测推荐,知网AI率轻松降到15%以下
  • 定义中的【谓词】是什么
  • 偏远地区设计学生就业难?远程工作接单,实现高薪自由职业
  • 公理化方法
  • 针对毕业论文开题报告撰写需求,推荐9款高效AI工具与模板修改方案
  • 利用RabbitMQ优化大数据系统的消息传输
  • 论文AI率98%怎么办?3招帮你降到安全线以下
  • 降AI不伤文:3种方法保护论文专业术语和逻辑
  • 必看!提示工程行业标准的权威指南
  • STM32项目分享:智能热水器
  • 毕业季必备:6款AIGC痕迹消除工具实测,第3款效果最稳
  • DeepSeek写的论文AI率98%怎么降?亲测这套方法有效