Python 环境不再折腾:macOS 用 uv 一键建虚拟环境并锁定依赖

1. uv 是什么:为什么值得替代传统 pip + venv

uv 是由 Astral 推出的 Python 环境与依赖管理工具,主打“快”和“可重复”。它把常见的几件事(创建虚拟环境、安装依赖、生成锁文件、运行命令)串成一套一致的工作流,适合个人装机、团队协作和多项目并行。

工具地址:https://github.com/astral-sh/uv

官方文档:https://docs.astral.sh/uv/

2. 在 macOS 上安装 uv(Homebrew / 官方安装脚本)

如果你已经在用 Homebrew,安装最省事:

brew install uv

安装后确认版本:

uv --version

不使用 Homebrew 也可以参考官方文档的安装方式(不同芯片与系统版本会有差异)。建议把 uv 放到 PATH 中,避免后续终端找不到命令。

3. 创建项目与虚拟环境:让每个项目都有自己的 Python

进入你的项目目录(或新建一个目录),然后创建虚拟环境:

mkdir myproj && cd myproj

uv venv

这一步会生成项目级虚拟环境(通常位于 .venv)。接着激活环境:

source .venv/bin/activate

如果你希望固定 Python 版本,可以先确保系统已安装目标版本(例如通过 Homebrew 或其他方式),然后再创建 venv;团队协作时,建议在 README 中写清最小版本要求。

4. 安装依赖与锁定版本:把“能跑”变成“可复现”

安装常用库(示例):

uv pip install requests rich

生成 requirements(或维护你项目的依赖清单)之后,关键是要有“锁定”的概念:把你当前解析到的依赖版本记录下来,这样在另一台电脑/CI 上能得到几乎一致的环境。

你可以用 uv 提供的导出/锁定能力(以官方文档为准)来生成锁文件,并在团队里提交到仓库;这样“装依赖”就不再是每个人各装各的,而是统一从锁文件恢复。

5. 常见提效用法:一条命令跑脚本、跑测试、跑工具

当虚拟环境准备好后,你可以用 uv 来运行项目里的命令,让命令执行和依赖环境绑定在一起。例如运行一个脚本:

python -m your_module

跑测试(示例):

pytest -q

建议把这些高频命令写进项目的 Makefile 或脚本里,再配合 uv 的环境管理,让新同事/新设备上手成本更低。

6. 与 VS Code / Jupyter 的配合:让编辑器自动选对解释器

在 VS Code 中,打开项目后选择解释器指向 .venv(通常会自动识别)。这样运行/调试时就不会误用系统 Python。

如果你用 Jupyter,建议把 kernel 安装到当前虚拟环境(示例):

uv pip install ipykernel

python -m ipykernel install --user --name myproj --display-name "Python (myproj)"

之后在 Notebook 中选择对应的 Kernel,即可保证依赖一致。

7. 常见问题与建议

Q:需要同时维护多个项目怎么办? A:每个项目用自己的 .venv,不要共用全局 site-packages;这也是“环境不互相污染”的根本。

Q:团队怎么统一? A:把 Python 版本要求、安装步骤、依赖锁文件的生成/更新流程写进 README,并在 CI 里校验锁文件是否更新。

Q:性能与安全 A:只从可信源安装依赖;不要随意执行未知脚本;依赖版本更新时建议先在分支验证再合并。

用户评论 (0)

登录后参与讨论

立即登录 注册账号

暂无评论,快来抢沙发吧~

操作成功