Windows 下现代化开发环境构建指南
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