UV使用教程

安装UV

具体安装文档可参考官方文档:https://docs.astral.sh/uv/getting-started/installation/
以下是在Windows系统下的几种安装方式。

2.1 powershell下载

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

2.2 winget下载

winget install --id=astral-sh.uv  -e

2.3 直接下载安装包
🤣😂🤣😂 哎哟喂!本该一行命令轻松搞定,谁料卡在了 GitHub 这道墙🧱,😭。看来只能手动去搬运资源了(🤫🤫🤫 你懂的)。

下载地址:uv-x86_64-pc-windows-msvc.zip
解压后,将解压后的文件夹目录设置环境变量即可生效。

使用

  1. uv教程
    3.1 创建虚拟环境 (uv venv)
  • 功能: 创建一个新的 Python 虚拟环境。
  • 示例:
# 在当前目录下创建一个名为 .venv 的虚拟环境,使用系统默认的 Python 版本
uv venv

# 在当前目录下创建一个名为 my-project-env 的虚拟环境,使用指定的 Python 3.11 版本
uv venv -p python3.11 my-project-env

# 在指定路径创建一个名为 custom-env 的虚拟环境,使用 Python 3.10
uv venv -p python3.10 /path/to/my/project/custom-env

3.2. 安装包 (uv pip install)

  • 功能: 在激活的虚拟环境中安装 Python 包。(ps:看到这里的pip老熟悉了,但是,此pip非彼pip,这里是uv本身的安装命令。)

  • 示例:

# 确保你已经激活了虚拟环境 
# Windows (CMD): .\venv\Scripts\activate
# macOS/Linux (Bash/Zsh): source venv/bin/activate

# 安装 requests 包
uv pip install requests

# 安装指定版本的 Flask 包
uv pip install Flask==2.2.2

# 从 requirements.txt 文件安装所有依赖
uv pip install -r requirements.txt

# 安装开发依赖 (通常在 requirements-dev.txt 中)
uv pip install -r requirements-dev.txt -d dev

3.3. 卸载包 (uv pip uninstall)

  • 功能: 从激活的虚拟环境中卸载指定的 Python 包。

  • 示例:

# 确保你已经激活了虚拟环境

# 卸载 requests 包
uv pip uninstall requests

# 卸载多个包
uv pip uninstall Flask Werkzeug

3.4. 列出已安装的包 (uv pip list)

  • 功能: 显示当前激活的虚拟环境中已安装的包及其版本。

  • 示例:

# 确保你已经激活了虚拟环境
uv pip list
AI写代码

3.5. 导出 requirements 文件 (uv pip freeze)

  • 功能: 将当前激活的虚拟环境中已安装的包及其确切版本导出到 requirements.txt 文件中。

  • 示例:

# 确保你已经激活了虚拟环境

# 导出到默认的 requirements.txt 文件
uv pip freeze > requirements.txt

# 导出到指定的文件
uv pip freeze > my_dependencies.txt

3.6. 运行工具 (uv tool run) 或其别名 (uvx)

  • 功能: 运行由 Python 包提供的命令行工具,无需显式安装到当前虚拟环境或全局环境。uv 会自动创建一个临时的隔离环境来运行该工具。

  • 示例:

# 运行 black 代码格式化工具
uvx black .

# 运行 flake8 代码检查工具
uv tool run flake8 my_module.py

# 运行指定版本的 pylint
uvx pylint@2.10.0 my_module.py

3.7. 锁定依赖 (uv pip compile)

  • 功能: 从 requirements.in 文件编译生成精确的锁定文件 (requirements.txt),包含所有直接和间接依赖及其确切版本。这有助于实现可复现的构建。

  • 示例:

# 假设你有一个 requirements.in 文件

# 编译生成 requirements.txt
uv pip compile requirements.in -o requirements.txt

# 指定输出文件
uv pip compile input_deps.in -o locked_deps.txt

3.8. 同步依赖 (uv pip sync)

  • 功能: 根据锁定的 requirements.txt 文件同步当前虚拟环境中的依赖。如果虚拟环境中的包与锁定文件不一致,uv 会安装、升级或卸载包以使其与锁定文件匹配。

  • 示例:

# 确保你已经激活了虚拟环境,并且有一个 requirements.txt 文件

# 根据 requirements.txt 同步虚拟环境
uv pip sync requirements.txt

# 同步指定的锁定文件
uv pip sync locked_dependencies.txt

3.9. 移除虚拟环境 (uv venv --remove)

  • 功能: 删除指定的虚拟环境。

  • 示例:

# 删除当前目录下的名为 .venv 的虚拟环境
uv venv --remove .venv

# 删除指定路径的虚拟环境
uv venv --remove /path/to/my/project/my-project-env

这些操作涵盖了使用 uv 进行 Python 项目开发和依赖管理的常见需求。记住在使用 uv pip install, uv pip uninstall, uv pip list, uv pip freeze, uv pip sync 等命令时,通常需要在你的虚拟环境被激活的状态下进行操作,以确保这些操作影响的是你的项目环境而不是全局环境。

posted @ 2025-05-12 15:34  又一岁荣枯  阅读(1678)  评论(0)    收藏  举报