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

用uv管理python环境/项目(各种应用场景)

一、安装uv

有python的情况

pip install uv

Windows

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

linux或macOS

curl -LsSf https://astral.sh/uv/install.sh | sh

二、换镜像源

uv不会读取pip的镜像源配置,所以要自己配置一下

2.1 针对项目换源

在项目文件的pyproject.toml中,添加如下内容:

[tool.uv]
index-url = "https://pypi.tuna.tsinghua.edu.cn/simple/"

2.2 全局换源

Windows下换源

临时换源

powershell下执行

$env:UV_INDEX_URL = "https://pypi.tuna.tsinghua.edu.cn/simple"
永久换源
  • 编辑[系统环境变量],添加:
    • 变量名:UV_INDEX_URL
    • 变量值:https://pypi.tuna.tsinghua.edu.cn/simple
验证变量是否生效:
echo $env:UV_INDEX_URL

linux下换源

临时换源
export UV_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple
永久换源
echo 'export UV_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple' >> ~/.bashrc
source ~/.bashrc  # 立即生效
验证环境是否生效
echo $UV_INDEX_URL # 输出应为:https://pypi.tuna.tsinghua.edu.cn/simple

用法1:把uv当作pip加速的工具

把原来的pip命令前面加个uv,变成uv pip,提高包的安装速度

查看当前python包

uv pip list #查看当前python包
uv pip tree #查看当前python包,可显示包依赖关系

安装python包

uv pip install pandas #安装pandas包

卸载python包

uv pip uninstall pandas #卸载pandas包(不会卸载pandas依赖的包,这点与pip一样)

导出python包列表

uv pip freeze > requirements.txt

导入python包列表

uv pip install -r requirements.txt

用法2:创建新uv项目,运行

mkdir uvtest # 创建项目文件夹uvtest
cd uvtest # 进入项目文件夹
uv init # 初始化项目,此时会在该文件夹中生成很多文件

打开.python-version,修改文件内容,切换项目python版本

执行python程序,测试环境

uv run main.py# 执行python程序
# 第一次执行uv run命令时,会将虚拟环境创建在.venv文件夹中
# 在vs code中选择该解释器路径:.\.venv\Scripts\python.exe

之后在项目文件夹中,通过终端执行uv命令管理python依赖

用法3:用uv的方式安装/卸载python包

查看当前python包

uv tree #查看当前python包,可显示包依赖关系

安装python包

uv add pandas #安装pandas包
# 执行该命令时,会自动修改pyproject.toml和uv.lock文件

若使用uv pip install,则不会自动修改pyproject.toml和uv.lock文件,需要手动调用uv add,修改pyproject.tomluv.lock文件
例:

uv pip install pandas # 安装了pandas包,但是没有修改pyproject.toml和uv.lock文件
uv add pandas # 手动修改pyproject.toml和uv.lock文件

卸载python包

uv remove pandas #卸载pandas包(会卸载pandas依赖的包,与pip不同)
# 执行该命令时,会自动修改pyproject.toml和uv.lock文件

升级python包

--upgrade-package表示将尝试将指定的包更新到最新的兼容版本,同时保持锁文件的其余部分不变。

uv lock --upgrade-package requests

导出python包列表

pyproject.tomluv.lock文件中就是该项目的python依赖信息,已经被自动修改了,一般不需要手动导出

导入python包列表

uv sync # 根据pyproject.toml和uv.lock文件内容自动安装依赖包 

用法4:从已有环境创建新uv项目

现在将【老项目】(没用uv)中的python环境迁移到【新项目】(用了uv)中

进入【老项目】文件夹终端,执行如下命令,导出依赖列表

pip freeze > requirements.txt  # 调整绝对路径的模块

requirements.txt文件移动至【新项目】文件夹中
打开【新项目】的.python-version文件,修改文件内容,输入与老项目相同的python版本
进入【新项目】文件夹终端,执行如下命令,导入依赖(顺便修改pyproject.toml和uv.lock文件)

uv add -r requirements.txt

此时可删除requirements.txt文件(因为环境已经导入进pyproject.toml和uv.lock了)

用法5:已有uv项目代码,创建该项目的环境

打开终端,进入项目文件夹,执行

uv sync  # 根据pyproject.toml和uv.lock文件内容自动安装依赖包

参考

https://hellowac.github.io/uv-zh-cn/reference/


http://www.mrgr.cn/news/94869.html

相关文章:

  • WebLogic XMLDecoder反序列化漏洞(CVE-2017-10271)深度解析与实战复现
  • PosterRender 实现微信下程序 分享商品生成海报
  • [蓝桥杯 2023 省 B] 飞机降落
  • 算法刷题记录——LeetCode篇(8) [第701~800题](持续更新)
  • 本地部署DeepSeek-R1(Dify升级最新版本、新增插件功能、过滤推理思考过程)
  • 【深度学习|目标检测】YOLO系列anchor-based原理详解
  • 卷积神经网络 - 一维卷积、二维卷积
  • 使用htool工具导出和导入Excel表
  • 做游戏的发展方向
  • GStreamer —— 3.1、Qt+GStreamer制作多功能播放器,支持本地mp4文件、rtsp流、usb摄像头等(可跨平台,附源码)
  • 类和对象C++
  • 设计模式 二、创建型设计模式
  • Chainlit 自定义元素开发指南:使用 JSX 和受限导入实现交互式界面
  • 设计模式-对象创建
  • matlab图论分析之指标计算(二)
  • 游戏立项时期随笔记录(1)
  • Anaconda conda常用命令:从入门到精通
  • 自定义uniapp组件,以picker组件为例
  • 【自定义微信小程序拉下选择过滤组件】searchable-select
  • VSTO(C#)Excel开发12:多线程的诡异