Python uv虚拟环境管理工具详解

Python uv虚拟环境管理工具详解

一、安装uv

1.1、Linux/macOS

bash 复制代码
curl -LsSf https://astral.sh/uv/install.sh | sh

1.2、Windows

bash 复制代码
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

1.3、使用pip安装

bash 复制代码
pip install uv

1.4 换源

1.4.1 设置环境变量法
bash 复制代码
# 设置清华镜像源
export UV_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple
export UV_EXTRA_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple

# 或者设置阿里云镜像源
export UV_INDEX_URL=https://mirrors.aliyun.com/pypi/simple/
export UV_EXTRA_INDEX_URL=https://mirrors.aliyun.com/pypi/simple/
1.4.2 配置文件法
bash 复制代码
mkdir -p ~/.config/uv
bash 复制代码
vim ~/.config/uv/uv.toml
bash 复制代码
[[index]]
url = "https://pypi.tuna.tsinghua.edu.cn/simple/"
default = true

二、创建新项目

2.1 创建项目

bash 复制代码
uv init my-project  --python 3.10

2.2 创建虚拟环境

bash 复制代码
uv venv --python 3.10

bash 复制代码
uv venv

2.3 激活环境

bash 复制代码
source .venv/bin/activate

2.4 退出环境

bash 复制代码
deactivate

三、安装依赖

3.1 安装单个包

bash 复制代码
uv add requests

3.2 安装多个包

bash 复制代码
uv add pandas numpy matplotlib

3.3 安装特定版本

bash 复制代码
uv add "django==4.2.0"

3.4 从requirements.txt安装

bash 复制代码
uv add -r requirements.txt

3.5 安装开发依赖

bash 复制代码
uv add --dev pytest black flake8

3.6 一键安装pyproject.toml中的依赖

3.6.1 安装 dependencies
bash 复制代码
uv sync
3.6.2 安装 dev 依赖组
bash 复制代码
uv sync --group dev
3.6.1 一次性安装所有依赖组
bash 复制代码
uv sync --all-groups
为什么不全部放在 dependencies?

为了环境分离

bash 复制代码
[project]
dependencies = [
    "matplotlib>=3.10.7",  # 生产必需
    "numpy>=2.2.6",        # 生产必需
]

[dependency-groups]
dev = [                    # 开发工具
    "black>=25.9.0",
    "pytest>=8.4.2",
]
test = [                   # 测试专用
    "pytest-cov>=5.0.0",
]
docs = [                   # 文档生成
    "sphinx>=7.0.0",
]

四、移除依赖

4.1 移除单个包

bash 复制代码
uv remove requests

4.2 移除多个包

bash 复制代码
uv remove pandas numpy

4.3 移除开发依赖

bash 复制代码
uv remove --dev pytest

五、更新依赖

5.1 更新所有包

bash 复制代码
uv sync --upgrade

5.2 更新特定包

bash 复制代码
uv add "requests --upgrade"

六、列出已安装依赖包

6.1 列出所有包

bash 复制代码
uv tree

6.2 以requirements格式列出

bash 复制代码
uv pip freeze
相关推荐
m0_3807438734 分钟前
给 OpenAI API 调用加上模型切换:GPT-5.1 和 Codex 的配置实践
人工智能·python·gpt
2601_962297481 小时前
在python3中、下列输出变量a的正确写法是_2020超星大数据Python免费答案
数据结构·python·算法·编程·字符串操作
“AI国潮设计-小江”1 小时前
Python实战 | SDXL精准控制“普宁英歌舞×星空蛋糕”IP落地,附核心Prompt与商用授权思路
开发语言·人工智能·python·prompt·aigc
公爵爱学习1 小时前
无人机视觉识别前序-Linux-YOLO安装
python·yolo·计算机视觉·conda·无人机
2601_962295331 小时前
使用python实现一个浏览器自动化的脚本
python·脚本·rpa·浏览器自动化·操作
小刘在重生~2 小时前
Java常用类|String类详解 + BigDecimal精准计算(含面试题)
java·开发语言·python
YYYing.3 小时前
【C++进阶系列 (二)】关于线程堆栈的那些事——函数调用过程
开发语言·c++·函数·线程堆栈
邪修king3 小时前
Re:Linux系统篇(十九):进程篇(八): 进程等待详解:wait/waitpid,僵尸进程到底该如何回收
java·开发语言
大汉堡玩测试3 小时前
langfuse测试实战(一): 配置一个简单的项目快速落地
python·测试工具
我爱写代码i3 小时前
SKAPP SK影视反编译详细教程+源码 含苹果端ipa
开发语言·javascript·ecmascript