从 npm 生态到 Python 工具链
package.json → pyproject.toml,npx → uvx。对照表 + 一个最小项目的两种写法。
10 分钟 · 右栏代码可点击「运行」
| Node.js | Python | 备注 |
|---|---|---|
| npm / pnpm | pip / uv | uv ≈ pnpm 的速度 + 锁文件 |
| package.json | pyproject.toml | 依赖、脚本、元数据 |
| node_modules | .venv | Python 是整环境隔离,不是目录查包 |
| npx cowsay | uvx cowsay | 一次性运行包内命令 |
| npm test | pytest | 断言直接用 assert |
| node -e | python -c | REPL:直接敲 python |
同一个最小项目
JavaScript
1// package.json2{3 "name": "demo",4 "type": "module",5 "scripts": { "start": "node main.js" },6 "dependencies": { "ky": "^1.7.0" }7}8// npm install && npm start
Python
1# pyproject.toml(uv init 自动生成)2[project]3name = "demo"4dependencies = ["httpx"]56# uv add httpx && uv run python main.py
- Node 安装 Python 版本本身用 uv:
uv python install 3.12,相当于 volta/fnm 的角色。 - Python 没有统一 monorepo 方案;单仓库多包用 uv workspace(类似 pnpm workspace)。
TIP
最大的心智转换 — Node 项目里依赖永远相对 package.json 解析;Python 里依赖相对当前激活的 venv。VS Code 右下角选错解释器,是所有灵异 import 报错的第一原因。
练一练
这张卡的示例代码已在游乐场中备好,改一改再运行。