Windows 下现代化开发环境构建指南

Published by rcdfrd on 2026-02-18

Windows 下用 uv 和 fnm 搭建高效的开发环境

为什么换?

  • 装依赖快 10 倍以上(不夸张,实测如此)
  • uv 一个工具干了 pip + poetry + pyenv 的活
  • fnm 不像 nvm-windows 那样笨重,切版本几乎无感

0. 准备工作

安装 Scoop

打开 PowerShell,执行:

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

配置 PowerShell Profile

后续 fnm 和 uv 的自动补全都需要写入 Profile,先确保文件存在:

if (!(Test-Path -Path $PROFILE)) { New-Item -ItemType File -Path $PROFILE -Force }

编辑 Profile:

notepad $PROFILE

后面的步骤会往这个文件里加东西。

1. Python 环境:uv

uv 是 Astral 公司开发的(就是做 Ruff 的那家)。一个独立二进制文件,不需要先装 Python。

1.1 安装 uv

scoop install main/uv

(可选)在 $PROFILE 末尾添加自动补全:

(& uv generate-shell-completion powershell) | Out-String | Invoke-Expression

1.2 管理 Python 版本

uv 直接下载预编译的 Python,不需要编译。

uv python install        # 安装最新版
uv python install 3.13   # 安装指定版本
uv python list           # 查看已安装的版本

1.3 项目管理(新项目推荐)

使用 pyproject.toml 管理依赖,类似 npm 的 package.json。

mkdir my-project; cd my-project
uv init

uv add requests          # 添加依赖
uv add --dev pytest      # 添加开发依赖

uv run python main.py    # 运行代码,无需手动 activate
uv run pytest

uv sync                  # 拉取代码后一键同步环境

1.4 兼容旧项目

有 requirements.txt 的老项目也能用。

uv venv
.venv\Scripts\activate

uv pip install requests
uv pip install -r requirements.txt
uv pip freeze > requirements.txt

注意激活虚拟环境的路径是 .venv\Scripts\activate,不是 Linux 的 source .venv/bin/activate

2. Node.js 环境:fnm + pnpm

2.1 安装 fnm

scoop install fnm

2.2 配置 Shell

$PROFILE 末尾添加:

fnm env --use-on-cd --shell powershell | Out-String | Invoke-Expression

保存后重启 PowerShell 或执行 . $PROFILE 生效。

--use-on-cd 会在进入含 .node-version.nvmrc 的目录时自动切换 Node 版本。

常用命令:

fnm install --lts        # 安装 LTS 版本
fnm install 24           # 安装指定版本
fnm use 24               # 切换版本
fnm default lts-latest   # 设置默认版本

2.3 pnpm 包管理器

pnpm 用硬链接节省磁盘空间,装包速度也快。Node.js 自带 corepack,启用即可。

需要在管理员终端执行:

corepack enable
corepack prepare pnpm@latest --activate
pnpm -v

如果遇到权限问题,右键 PowerShell → 以管理员身份运行,再执行上面的命令。

快速对比表

语言 老方案 新方案
Python pyenv-win + pip + venv uv
Node.js nvm-windows + npm fnm + pnpm

常用命令速查

Python (uv):

  • uv init / uv add / uv run — 新项目开发

  • uv pip install — 旧项目兼容模式

    Node.js (fnm):

  • fnm install --lts / fnm use — 版本管理

  • corepack enable — 启用包管理器(需管理员终端)

完整的 PowerShell Profile 参考

把以下内容写入 $PROFILE(通常位于 ~\Documents\PowerShell\Microsoft.PowerShell_profile.ps1):

# fnm
fnm env --use-on-cd --shell powershell | Out-String | Invoke-Expression

# uv 自动补全(可选)
(& uv generate-shell-completion powershell) | Out-String | Invoke-Expression