PyPyBridge

从 npm 生态到 Python 工具链

package.json → pyproject.toml,npx → uvx。对照表 + 一个最小项目的两种写法。

10 分钟 · 右栏代码可点击「运行」


Node.jsPython备注
npm / pnpmpip / uvuv ≈ pnpm 的速度 + 锁文件
package.jsonpyproject.toml依赖、脚本、元数据
node_modules.venvPython 是整环境隔离,不是目录查包
npx cowsayuvx cowsay一次性运行包内命令
npm testpytest断言直接用 assert
node -epython -cREPL:直接敲 python

同一个最小项目

JavaScript
1// package.json
2{
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"]
5
6# 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 报错的第一原因。

练一练

这张卡的示例代码已在游乐场中备好,改一改再运行。

在游乐场中打开