PyPyBridge

从 JDK + Maven 到 Python 工具链

Python 不需要编译,真正的坑在环境管理。用 uv 把版本、依赖、虚拟环境一次管齐。

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


Java 的世界是「先编译再运行」,Python 的世界是「解释器直接跑源码」。所以你不会怀念 javac,但会立刻遇到 Java 没有的问题:机器上同时存在多个 Python 版本,而包默认装进全局环境。工具链的第一课不是语法,是隔离。

任务Java 世界Python 世界
版本管理apt / brew 装 JDKuv python install 3.12
项目描述pom.xml / build.gradlepyproject.toml
装依赖mvn installuv add requests
运行程序mvn exec / java -jarpython main.py
一次性执行jshelluv run / python -c
测试JUnitpytest

2024 年之后的事实标准是 uv(Rust 编写,npm 级速度),一个工具同时承担了 nvm(管 Python 版本)+ Maven(管依赖)的角色。官方内置方案 python -m venv + pip 仍然可用,但慢且不锁依赖,团队项目建议直接 uv。

标准工作流对比

Java
1# JavaJDK 是全局的,Maven 管依赖
2brew install openjdk@17
3mvn archetype:generate -DgroupId=com.demo
4mvn package # 编译 + 打包
5java -jar target/app.jar
Python
1# Python:先隔离环境,再装依赖,再运行
2curl -LsSf https://astral.sh/uv/install.sh | sh
3uv init demo && cd demo
4uv add requests # 自动创建 .venv 并写入 pyproject.toml
5uv run python main.py
  • Java 里没有的问题:.venv 目录就是 Python 版的 node_modules,每个项目独立。
  • IDE(PyCharm / VS Code)选中解释器时,选项目里的 .venv/bin/python,不要选系统 Python。

TIP

铁律永远不要往系统 Python 里装包。macOS / Linux 的系统 Python 被操作系统依赖,弄坏很麻烦。先建 venv,一切包只进 venv。

练一练

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

在游乐场中打开