使用 Scoop 和 UV 搭建 Python 开发环境

1. 安装 Scoop 和 UV

首先,确保你的系统已经安装了 Scoop。它是一个优秀的命令行安装工具,可以让你轻松管理命令行应用程序。

如果你还没有安装 Scoop,请在 PowerShell 中执行以下命令:

1
2
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
irm get.scoop.sh | iex

安装 Scoop 后,接着安装 UV:

1
scoop install uv

2. 初始化项目并创建虚拟环境

UV 的核心思想是一切都以项目为中心。你需要为你的项目创建一个文件夹,然后在这个文件夹里进行所有操作。这确保了每个项目的依赖都是独立的。

  1. 创建项目目录

    1
    2
    mkdir my_project
    cd my_project
  2. 初始化项目: 执行 uv init 命令。这会在你的项目目录下创建一个 .venv 文件夹,这就是你的虚拟环境

    1
    uv init
  3. 激活虚拟环境: 激活虚拟环境后,所有后续的 uv pip 命令都只会影响当前项目,而不会污染系统全局的 Python 环境。

    1
    .\.venv\Scripts\activate

创建虚拟环境

1
2
uv venv --python 3.10 myenv310
uv venv # 默认创建名为 .venv 的环境,并使用安装的最新的python解释器

激活同上

3. 设置 Python 解释器的位置

UV 默认会使用系统环境变量 PATH 中找到的第一个 Python 解释器。但如果你需要使用特定版本的 Python,你可以通过以下两种方法来完全自主控制。

方法一:在初始化时指定解释器

在运行 uv init 命令时,使用 --python 参数来指定你想要使用的 Python 解释器的路径。

1
uv init --python C:\Users\YourName\AppData\Local\Programs\Python\Python311\python.exe

方法二:手动修改 .venv 文件

如果你的项目已经创建,但想更换解释器,可以直接编辑项目根目录下的 .venv 文件。这个文件是一个简单的文本文件,用于指定虚拟环境的配置。

打开 .venv 文件,将 python = "python" 这一行修改为你想要使用的 Python 解释器路径。

TOML
1
2
3
4
5
6
# .venv 文件内容示例
# 你可以手动指定你的 Python 解释器路径
python = "C:\\path\\to\\your\\python.exe"

# 默认情况下,文件内容可能是这样:
# python = "python"

4. 安装和管理第三方包

安装第三方包是 UV 最强大的功能之一。在虚拟环境激活的状态下,所有包都会被安装到 .venv\Lib\site-packages 目录中,这让你的项目依赖完全自包含。

从命令行安装

安装单个包:

1
uv pip install requests

安装多个包:

1
uv pip install pandas numpy

卸载包:

1
uv pip uninstall requests

requirements.txt 安装

这是一种推荐的实践,可以让你方便地管理项目依赖。

  1. 在项目根目录下创建一个名为 requirements.txt 的文件,并在其中列出所有依赖及其版本。

    1
    2
    3
    # requirements.txt
    requests>=2.28.1
    beautifulsoup4==4.11.1
  2. 使用 uv pip 命令一次性安装所有依赖:

    1
    uv pip install -r requirements.txt
  3. 如果你想将当前环境中已安装的包保存到 requirements.txt 中,可以使用 uv freeze 命令。

    1
    uv freeze > requirements.txt

    这是一个与 pip freeze 类似的命令,但它将依赖保存为 uv 格式,你可以随时使用 uv pip install -r requirements.txt 来复现环境。

5. 声明式地管理包 (推荐)

这是管理依赖的最佳方式。使用 uv add 来安装和记录你的依赖。

添加单个包

1
uv add requests

添加带版本的包

1
uv add "fastapi>=0.100.0"

添加开发依赖

如果你的依赖只在开发或测试时需要,可以使用 --dev 标志。

1
uv add --dev ruff

6. 从 requirements.txtpyproject.toml 管理依赖

当你使用 uv add 命令时,UV 会自动更新你的 pyproject.tomlrequirements.txt 文件。

  • 安装所有依赖:当其他开发者克隆你的项目时,他们只需要运行以下命令即可完美复现你的环境。

    1
    uv sync
  • 检查依赖:使用 uv check 来验证你的依赖版本是否正确,以防止潜在的冲突。

    1
    uv check

7. 其他常用命令

  • uv help: 查看所有可用命令。
  • uv pip list: 列出当前虚拟环境中已安装的包。
  • uv venv: 管理虚拟环境,比如创建、删除等。uv init 实际上是 uv venv 的一个简化版本。

通过以上步骤,你已经完全掌握了如何使用 UV 和 Scoop 在 Windows 上搭建一个自主可控的 Python 开发环境。