python:Mac 系统 uv 完整安装+入门实战

一、uv 是什么

Astral(Ruff 同团队)基于 Rust 开发,单二进制文件 ,一套工具直接平替:

pyenv + pip + venv + pipx + poetry + isort + flake8

主打极速依赖解析、内置Python版本管理、严格遵循PEP621标准,是目前Python新项目首选工程化工具。

二、Mac 三种安装方式(推荐顺序)

方式1:官方一键脚本(最推荐,自带自更新)

无需提前装Homebrew、Python,直接终端执行:

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

安装后关闭终端重新打开 ,环境变量自动写入zsh配置。

验证安装:

bash 复制代码
uv --version
uvx --version

后续升级:

bash 复制代码
uv self update

如果提示 command not found,手动补PATH:

bash 复制代码
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

方式2:Homebrew 安装(brew 用户首选)

bash 复制代码
brew install uv
# 更新
brew upgrade uv

Apple Silicon M系列 brew 路径:/opt/homebrew/bin,Intel:/usr/local/bin

方式3:pipx 隔离安装

适合不想改系统PATH的场景:

bash 复制代码
python3 -m pip install --user pipx
python3 -m pipx ensurepath
pipx install uv

三、国内镜像加速(必配,解决下载慢)

终端执行配置阿里云PyPI源:

bash 复制代码
uv pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
# 额外加清华源备用
uv pip config set global.extra-index-url https://pypi.tuna.tsinghua.edu.cn/simple

四、核心基础用法(从0新建项目)

1. 初始化项目

bash 复制代码
# 创建项目文件夹+pyproject.toml
uv init demo-project
cd demo-project

2. 管理Python解释器(替代pyenv)

bash 复制代码
# 查看可安装版本
uv python list
# 安装指定Python版本
uv python install 3.11
# 项目锁定使用3.11
uv python pin 3.11

3. 依赖管理(核心命令)

bash 复制代码
# 安装正式依赖
uv add requests pandas

# 安装开发依赖(ruff、pytest)
uv add --dev ruff pytest

# 一键安装所有依赖并生成uv.lock锁文件、自动创建.venv虚拟环境
uv sync

# 删除依赖
uv remove requests

# 查看依赖树
uv tree

# 升级全部依赖
uv lock --upgrade
# 单独升级某个包
uv lock --upgrade-package pandas

4. 运行代码(自动调用虚拟环境)

bash 复制代码
# 直接执行py文件
uv run main.py

# 进入虚拟环境终端
source .venv/bin/activate
# 退出
deactivate

5. 全局工具安装(替代pipx)

bash 复制代码
# 全局装ruff,任意目录可用
uv tool install ruff
# 升级全局工具
uv tool upgrade ruff

五、uv + Ruff 黄金组合(一键规范+格式化)

1. 项目内安装Ruff

bash 复制代码
uv add --dev ruff

2. 项目根目录 pyproject.toml 完整配置

toml 复制代码
[project]
name = "demo-project"
version = "0.1.0"
dependencies = []
requires-python = ">=3.11"

[project.optional-dependencies]
dev = [
  "ruff>=0.6.0",
  "pytest>=7.0",
]

# Ruff 代码检查+格式化配置
[tool.ruff]
target-version = "py311"
line-length = 100
exclude = [".venv", "__pycache__", "build", "dist"]

[tool.ruff.lint]
select = [
  "E", "W", "F",   # flake8 基础规范
  "I",             # isort 导入排序
  "UP",            # pyupgrade 语法升级
  "B",             # 常见bug检测
  "C4",            # 列表推导优化
]
fix = true  # 自动修复可修正问题

[tool.ruff.format]
quote-style = "double"
indent-style = "space"
line-ending = "auto"

3. 常用Ruff指令

bash 复制代码
# 代码检查并自动修复
uv run ruff check . --fix
# 全盘格式化代码
uv run ruff format .

六、VS Code 搭配 uv 环境

  1. VS Code 打开项目,左下角选择解释器
  2. 选中项目内 .venv/bin/python
  3. 安装 Ruff VSCode 插件,保存自动格式化+实时报错提示。

七、老项目迁移适配

1. 从 requirements.txt 迁移

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

2. 从 Poetry 项目迁移

uv 可直接读取 pyproject.toml + poetry.lock

bash 复制代码
uv sync
# 生成标准uv.lock,后续完全使用uv管理

八、打包发布到PyPI

bash 复制代码
# 构建wheel+sdist包
uv build
# 上传至pypi
uv publish

九、常用高频命令速查表

功能 命令
初始化项目 uv init
安装依赖 uv add xxx
安装开发依赖 uv add --dev xxx
同步环境 uv sync
运行脚本 uv run xxx
安装Python uv python install 3.11
锁定Python版本 uv python pin 3.11
更新uv本体 uv self update
全局安装工具 uv tool install xxx

十、常见踩坑说明

  1. M系列Mac 终端权限问题:首次安装允许终端访问网络即可;
  2. 切换终端(zsh/bash):脚本会自动识别写入对应配置文件,无需手动改;
  3. 不想生成.venv:执行 uv sync --no-venv 直接使用系统Python。

官方参考文档

uv 中文文档:https://uv.doczh.com/

uv 英文官网:https://docs.astral.sh/uv/

三者极简关系(Poetry / pipx / uv)

  1. pipx = 只干全局工具安装这一件小事
  2. Poetry = 项目管理 + 打包发库
  3. uv = 同时干完 Poetry + pipx + pyenv + pip 所有功能
  • 你可以用 pipx 去安装 Poetry,这是官方推荐的标准姿势;
  • 但不能用 Poetry 去替代 pipx;
  • 装了 uv 之后,uv tool 替代 pipx,uv sync/add 替代 Poetry,两个工具都可以不再安装。
相关推荐
花酒锄作田1 小时前
FastAPI 使用 session 认证
python·fastapi
lsswear2 小时前
Python 并发 线程
开发语言·python
Ivanqhz2 小时前
MLIR OpBuilder
开发语言·python·mlir
威联通安全存储4 小时前
TS-h2287XU-RP 在家电制造总装与质检数据场景的部署
python·制造
泡泡鱼(敲代码中)5 小时前
Python 字符串 str 完整学习笔记
python·学习
troy1285 小时前
Python 基础语法(八):Web 后端开发、数据分析与可视化、网络爬虫、人工智能 / 大模型应用
前端·python·数据分析
我不会起名字3225 小时前
一天一道算法题(34):回溯法的经典例题(子集)
java·数据结构·python·算法·golang·深度优先·力扣
ThornArmor6 小时前
重铸1996|肉体渲染:关节的裂缝:分段模型积木拼装与未成熟的 RSP 矩阵骨骼动画形变
c语言·汇编·c++·python·硬件架构·游戏机
毕业设计7036 小时前
(免费领源码)基于Python的博物馆研学活动管理系统的设计与实现22724- java、PHP、python、C#、小程序、大数据、单片机、网络工程等)
python·mysql·随机森林·pycharm·django·flask·推荐算法
kyrie_sakura6 小时前
python学习笔记15 -- Anaconda,Jupyter,numpy
python·学习·jupyter·numpy