Python 环境搭建与工具链

要点

解释器决定语言行为,虚拟环境隔离项目依赖,uv 等工具管理安装与解析。当前终端找到的 Python 不一定是项目使用的 Python。

1. 安装 Python 3.14

2026 年的当前稳定版本为 Python 3.14 系列(维护版 3.14.7),新项目建议直接使用 Python 3.14。推荐用 uv 统一管理 Python 版本本身:

# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

1. Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

安装 uv 后,Python 解释器也交给它管理:

# 安装指定版本的解释器
uv python install 3.14

1. 查看可用与已安装版本
uv python list

验证安装:

uv python find 3.14     # 输出解释器路径
uv run python --version # Python 3.14.x

💡 uv 兼容 venv/pip 工作流但快 10-100 倍,且能替你下载管理多个 Python 版本,避免污染系统解释器。


2. 为什么需要虚拟环境

Python 的第三方包默认装进全局解释器。两个项目若依赖同一包的不同版本,就会冲突。虚拟环境为每个项目提供隔离的包目录:

项目A (pydantic 2.12)  ─┐
                       ├─ 各自独立的 site-packages
项目B (pydantic 2.13) ─┘

传统做法是 python -m venv .venv + 手动 activate;uv 把这一切简化为自动完成。


3. 用 uv 创建第一个项目

mkdir demo && cd demo
uv init --python 3.14   # 生成 pyproject.toml、.python-version、main.py

生成的 pyproject.toml 是项目的唯一事实来源(类似 package.json):

[project]
name = "demo"
version = "0.1.0"
requires-python = ">=3.14"
dependencies = []

添加依赖并运行:

uv add rich          # 安装并写入 dependencies,自动创建 .venv
uv add --dev ruff    # 开发依赖写入 dependency-groups
uv run main.py       # 在项目环境中运行脚本

常用命令速览:

命令作用
uv add <pkg>添加运行依赖
uv remove <pkg>移除依赖
uv lock锁定精确版本(生成 uv.lock)
uv sync按 lock 文件还原环境
uv run <cmd>在项目环境中执行命令
uv pip install <pkg>兼容 pip 习惯用法

⚠️ 陷阱:uv run 才会使用项目虚拟环境;直接敲 python main.py 用的是系统解释器,会报”找不到模块”。


4. 传统方案:venv + pip(需要认识)

团队或旧项目仍可能使用 venv,必须能看懂:

python -m venv .venv          # 创建虚拟环境
source .venv/bin/activate     # Linux/macOS 激活(Windows: .venvScriptsactivate)
pip install requests          # 此时的 pip 安装到 .venv
deactivate                    # 退出虚拟环境

导出依赖用 pip freeze > requirements.txt,还原用 pip install -r requirements.txt。uv 同样支持这套流程(uv venv、uv pip install),可无缝迁移。


5. ruff:一个工具管格式与检查

ruff 用 Rust 编写,整合了 Black(格式化)、isort(导入排序)、flake8(代码检查)三大工具的功能:

uv run ruff check .       # 静态检查(未用变量、未定义名、常见 bug)
uv run ruff format .      # 格式化(Black 风格)
uv run ruff check --fix . # 自动修复可修复问题

在 pyproject.toml 中配置规则:

[tool.ruff]
line-length = 100
target-version = "py314"

[tool.ruff.lint]
select = ["E", "F", "I", "UP", "B"]  # 基础/导入/升级建议/bug 警告

UP 规则组会提示现代写法,例如用 X | None 替代 Optional[X]。


6. VS Code 配置

推荐扩展:

  • Python(微软官方)— 语言支持与调试
  • Pylance — 基于 Pyright 的类型检查与智能提示
  • Ruff — 保存时自动格式化与修复

工作区设置 .vscode/settings.json:

{
  "python.defaultInterpreterPath": ".venv/bin/python",
  "[python]": {
    "editor.defaultFormatter": "charliermarsh.ruff",
    "editor.formatOnSave": true,
    "editor.codeActionsOnSave": {
      "source.organizeImports.ruff": "explicit",
      "source.fixAll.ruff": "explicit"
    }
  },
  "python.analysis.typeCheckingMode": "basic"
}

关键点:defaultInterpreterPath 指向项目 .venv 中的解释器,编辑器内运行、调试、提示才与命令行一致。Windows 下路径为 .venv\Scripts\python.exe。

调试:按 F5 选择”Python File”,断点、变量查看、REPL 均开箱即用。


最佳实践

为项目建立独立环境并记录解释器和依赖约定,避免一个项目升级库影响另一个。锁文件与项目清单可以提交,虚拟环境目录属于可重建产物,不应入库。

uv run 让命令使用项目环境,uvx 通常使用隔离工具环境且可能需要下载,并非“无需安装即可获得任意工具”。CI 要按锁文件和约定版本重建,再实际执行测试,不能只检查文件存在。


练习与实践

练习一:搭建项目

  1. 用 uv init 创建 pylab 项目,指定 Python 3.14
  2. 添加 rich 依赖,编写脚本打印彩色表格
  3. 用 uv run ruff check --fix . 清理代码

练习二:环境隔离验证

  1. 在 pylab 中 uv add "pydantic==2.12"
  2. 新建 pylab2 项目,uv add pydantic(最新版,2.13.x)
  3. 分别运行打印版本号的脚本,确认两环境版本不同

评估标准:pylab 内 uv run python -c "import pydantic; print(pydantic.VERSION)" 输出 2.12.x。


相关文档

  • 📄 第一个 Python 脚本 — 环境就绪后的下一步
  • 📄 Python 关键字详解 — 语言核心概念入口
  • 📄 标准库导航 — 了解解释器自带的能力边界
暂无评论

发送评论 编辑评论

|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇