第 1 章:Python 环境搭建

作为前端开发者,你已经掌握了 JavaScript 的语法和生态。本章将带你完成从"前端思维"到"Python 思维"的初步转换, 搭建一套高效、现代的 Python 开发环境,为后续学习打下坚实基础。

1.1 为什么选择 Python

你可能已经用 JavaScript 构建了无数精美的网页和交互体验,但 Python 能为你打开另一扇大门—— 从后端服务、数据分析到 AI 应用开发,Python 凭借其简洁的语法和强大的生态,成为当今最通用的编程语言之一。

JavaScript vs Python 语法对比

让我们先看一段功能相同的代码,直观感受两者的差异:

javascript
// JavaScript: 获取用户列表并筛选成年人
const getAdults = (users) => {
  return users
    .filter(user => user.age >= 18)
    .map(user => ({
      name: user.name,
      age: user.age
    }));
};

const users = [
  { name: "Alice", age: 25 },
  { name: "Bob", age: 17 }
];
console.log(getAdults(users));
python
# Python: 获取用户列表并筛选成年人
def get_adults(users):
    return [
        {"name": user["name"], "age": user["age"]}
        for user in users
        if user["age"] >= 18
    ]

users = [
    {"name": "Alice", "age": 25},
    {"name": "Bob", "age": 17}
]
print(get_adults(users))
ℹ️关键差异速览
  • 缩进即语法:Python 用缩进表示代码块,而非大括号 {}
  • 无分号:每行结束无需分号(当然你也可以写,但不推荐)
  • 无 let/const/var:直接赋值即可创建变量
  • 列表推导式:Python 的 [...for...if...] 比 JS 的链式调用更简洁
  • 函数定义:使用 def 关键字,而非箭头函数或 function

应用场景对比

领域 JavaScript Python
Web 前端 ✅ 原生支持 ❌ 需转译(Brython 等,不常用)
Web 后端 ✅ Node.js ✅ Django / FastAPI / Flask
数据分析 ⚠️ 能力有限 ✅ Pandas / NumPy 生态成熟
机器学习 / AI ⚠️ TensorFlow.js 等 ✅ PyTorch / TensorFlow 首选
自动化脚本 ⚠️ 需 Node 环境 ✅ 内置丰富标准库
DevOps / 运维 ⚠️ 较少使用 ✅ Ansible / SaltStack
💡给前端开发者的建议

不要把它看作"换语言",而是"扩展工具箱"。JavaScript 依然是前端领域的王者, 而 Python 能让你涉足后端、数据、AI 等全新领域。两者结合,你将拥有全栈 + AI 的完整能力。

1.2 安装 Python

与 Node.js 类似,Python 也需要先安装运行时环境。推荐安装 Python 3.11 或更高版本, 它们带来了显著的性能提升和更友好的错误提示。

Windows 安装步骤

  1. 下载安装包

    访问 python.org/downloads,下载最新版 Python 3.11+ 的 Windows installer(64-bit)。

  2. 运行安装程序

    关键步骤:勾选 "Add python.exe to PATH"(添加到环境变量), 然后点击 "Install Now"。这相当于把 Python 注册为全局可用命令,类似 Node.js 安装时的 PATH 配置。

  3. 验证安装

    打开命令提示符(CMD)或 PowerShell,输入以下命令:

    bash
    python --version
    # 输出: Python 3.11.x
    
    python -c "print('Hello from Python')"
    # 输出: Hello from Python

macOS 安装步骤

  1. 使用 Homebrew 安装(推荐)

    如果你已经安装了 Homebrew(macOS 的包管理器,类似 Ubuntu 的 apt):

    bash
    brew install python@3.11
  2. 验证安装
    bash
    python3 --version
    # macOS 系统自带 Python 2.7,务必使用 python3 命令
⚠️版本选择注意事项
  • Python 2 已于 2020 年停止维护,绝对不要学习或使用
  • Python 3.10+ 支持结构模式匹配(类似 switch/case),语法更现代
  • Python 3.11 性能提升 10-60%,错误提示更友好(类似 V8 的报错优化)
  • Python 3.12+ 进一步改进 f-string 性能和类型提示语法

1.3 包管理工具

前端开发者熟悉 npm/yarn/pnpm 来管理依赖。Python 生态也有多种包管理方案, 从传统的 pip 到现代的 uv,选择适合你的工具能大幅提升开发效率。

pip —— Python 的 "npm"

pip 是 Python 内置的包管理器,随 Python 一起安装。基本用法与 npm 对比如下:

操作 npm pip
安装包 npm install lodash pip install requests
安装到项目(本地) npm install --save-dev jest pip install -r requirements.txt
卸载包 npm uninstall lodash pip uninstall requests
查看已安装 npm list pip list
依赖清单文件 package.json requirements.txt / pyproject.toml
bash
# 安装 requests 库(类似 axios,用于 HTTP 请求)
pip install requests

# 安装指定版本
pip install requests==2.31.0

# 导出当前环境的所有依赖
pip freeze > requirements.txt

# 从 requirements.txt 安装依赖(类似 npm install)
pip install -r requirements.txt

uv —— 现代极速包管理器(强烈推荐)

uv 由 Astral 团队开发(也是 Ruff 格式化工具的开发者), 使用 Rust 编写,速度比 pip 快 10-100 倍。它同时集成了虚拟环境管理功能,一个工具替代 pip + venv。

bash
# 安装 uv(Windows)
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

# 安装 uv(macOS/Linux)
curl -LsSf https://astral.sh/uv/install.sh | sh

# 使用 uv 安装包(速度极快)
uv pip install requests

# 创建虚拟环境并激活(类似 npm 的 node_modules 隔离)
uv venv
source .venv/bin/activate  # macOS/Linux
.venv\Scripts\activate    # Windows

# 运行 Python 脚本(自动管理依赖)
uv run script.py
💡为什么推荐 uv?

作为前端开发者,你已经习惯了 pnpm 的极速安装体验。uv 就是 Python 生态的 "pnpm": 安装速度快、缓存机制高效、支持全局锁文件。对于现代 Python 开发,uv 是首选工具。

conda / miniconda —— 数据科学首选

如果你计划深入数据分析或机器学习领域,conda 是更好的选择。它不仅管理 Python 包, 还能管理非 Python 依赖(如 CUDA、MKL 等底层库),这在 AI 开发中至关重要。

bash
# 安装 miniconda(轻量版,推荐)
# 下载地址: https://docs.conda.io/en/latest/miniconda.html

# 创建隔离环境(类似 nvm 管理 Node 版本)
conda create -n myproject python=3.11

# 激活环境
conda activate myproject

# 安装包
conda install numpy pandas

# 退出环境
conda deactivate
ℹ️工具选择建议
  • 通用开发 / Web 后端:uv(现代、快速、简单)
  • 数据科学 / AI / 机器学习:miniconda(管理复杂底层依赖)
  • 简单脚本 / 教学场景:pip + venv(内置,无需额外安装)

1.4 VS Code 配置

VS Code 是 Python 开发的绝佳编辑器,配合合适的扩展和配置,你能获得不逊于 WebStorm 的开发体验, 包括智能提示、代码格式化、断点调试等。

必装扩展

  1. Python 扩展(Microsoft 官方)

    在扩展商店搜索 "Python",安装 Microsoft 出品的官方扩展。它提供 IntelliSense、代码导航、调试支持等核心功能。

  2. Ruff 扩展(代码格式化和检查)

    Ruff 是 Python 生态中最快的 linter 和 formatter,由 Rust 编写。它同时替代了 flake8、black、isort 等多个工具。 安装扩展后,在设置中启用 Ruff 作为默认格式化工具。

  3. Pylance(类型检查,可选)

    如果你习惯 TypeScript 的类型安全,Pylance 提供强大的类型推断和检查功能,帮助你在 Python 中写出更健壮的代码。

配置 Python 解释器

安装扩展后,按 Ctrl+Shift+P(macOS: Cmd+Shift+P)打开命令面板,输入并选择:

text
Python: Select Interpreter
# 选择你安装的 Python 版本,如 Python 3.11.x

推荐 settings.json 配置

在项目根目录创建 .vscode/settings.json 文件,添加以下配置:

json
{
  "python.defaultInterpreterPath": "python",
  "editor.formatOnSave": true,
  "editor.defaultFormatter": "charliermarsh.ruff",
  "ruff.organizeImports": true,
  "python.analysis.typeCheckingMode": "basic",
  "python.analysis.autoImportCompletions": true,
  "files.exclude": {
    "**/__pycache__": true,
    "**/.venv": true,
    "**/*.pyc": true
  }
}
ℹ️与前端开发的类比
  • Python 扩展 ≈ VS Code 内置的 JavaScript/TypeScript 语言服务
  • Ruff ≈ ESLint + Prettier 的结合体(且速度更快)
  • 解释器选择 ≈ 选择 Node.js 版本(nvm 切换)
  • __pycache__ ≈ node_modules 中的缓存文件,通常不需要关注

调试配置

Python 的调试体验与 Node.js 非常相似。创建 .vscode/launch.json

json
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Python: 当前文件",
      "type": "debugpy",
      "request": "launch",
      "program": "${file}",
      "console": "integratedTerminal"
    }
  ]
}

配置完成后,你可以在代码左侧点击设置断点,按 F5 启动调试,体验与调试 Node.js 程序完全一致的流程。

1.5 Jupyter Notebook

Jupyter Notebook 是 Python 生态中独特的交互式编程环境,允许你分段执行代码并即时查看结果。 对于前端开发者,可以把它理解为"增强版浏览器控制台"——你可以逐段运行代码、查看变量状态、可视化数据。

安装 Jupyter

bash
# 使用 pip 安装
pip install jupyter

# 或使用 uv(更快)
uv pip install jupyter

启动 Jupyter

bash
jupyter notebook
# 自动打开浏览器,地址通常为 http://localhost:8888

基本操作

操作 快捷键 / 方式 类比前端
运行当前单元格 Shift + Enter 在 Console 中执行当前行
插入单元格(下方) B
插入单元格(上方) A
删除单元格 D, D(按两次 D)
切换代码 / Markdown M(Markdown)/ Y(代码)
查看变量 直接输入变量名执行 Console 中输入变量名
💡VS Code 内置 Jupyter 支持

安装 Python 扩展后,VS Code 原生支持 .ipynb 文件。你可以直接在 VS Code 中创建和编辑 Notebook, 无需打开浏览器。这是我最推荐的工作方式——统一的编辑器,统一的快捷键。

1.6 第一个程序

环境准备就绪,现在来写你的第一个 Python 程序。我们将通过三种方式运行代码,帮助你理解 Python 的执行模式。

方式一:交互式解释器(REPL)

在终端输入 python(或 python3)进入交互式环境,类似于浏览器的 DevTools Console:

python
$ python
Python 3.11.4 (main, Jun  7 2023, 10:13:09)
>>> print("Hello, World!")
Hello, World!
>>> name = "前端开发者"
>>> print(f"欢迎你,{name}!")
欢迎你,前端开发者!
>>> exit()  # 退出解释器
ℹ️关于 f-string

上面代码中的 f"欢迎你,{name}!" 是 Python 3.6+ 引入的 f-string 格式化语法, 功能类似 JavaScript 的模板字符串 `欢迎你,${name}!`,非常直观易用。

方式二:运行 .py 文件

创建 hello.py 文件,这是生产环境中最常用的执行方式:

python
# hello.py
# 这是我的第一个 Python 程序

name = "前端开发者"
language = "Python"

print(f"Hello, {name}!")
print(f"欢迎来到 {language} 的世界!")

# 简单的计算
a = 10
b = 20
print(f"{a} + {b} = {a + b}")
bash
$ python hello.py
Hello, 前端开发者!
欢迎来到 Python 的世界!
10 + 20 = 30

方式三:VS Code 中运行

在 VS Code 中打开 hello.py,点击右上角的运行按钮(▶),或右键选择 "Run Python File"

💡执行方式对比
方式 适用场景 前端类比
REPL 快速测试、学习语法 浏览器 Console
.py 文件 正式项目、脚本部署 Node.js 脚本文件
Jupyter 数据分析、实验探索 —(Python 特有)

1.7 pyenv —— Python 的 "nvm"

前端开发者使用 nvm(Node Version Manager)管理不同项目所需的 Node.js 版本。Python 生态中, pyenv 承担了完全相同的角色——在全局系统中安装和切换多个 Python 版本。

安装 pyenv

bash
# macOS 安装(使用 Homebrew)
brew install pyenv

# Linux 安装
curl https://pyenv.run | bash

# Windows 安装(使用 pyenv-win)
# 通过 PowerShell 安装:
Invoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1" -OutFile "./install-pyenv-win.ps1"; &"./install-pyenv-win.ps1"

常用命令

命令 作用 nvm 类比
pyenv install --list 查看所有可安装的 Python 版本 nvm ls-remote
pyenv install 3.12.0 安装指定版本 nvm install 18.0.0
pyenv versions 查看已安装的版本 nvm ls
pyenv global 3.12.0 设置全局默认版本 nvm alias default 18
pyenv local 3.11.0 设置当前目录的 Python 版本 类似 .nvmrc 文件
bash
# 常用工作流示例
# 1. 安装 Python 3.12
pyenv install 3.12.0

# 2. 在项目中指定 Python 版本(类似 .nvmrc)
cd my-project
pyenv local 3.12.0
# 这会创建 .python-version 文件

# 3. 查看当前使用的版本
pyenv version
# 输出: 3.12.0 (set by /path/to/my-project/.python-version)
💡何时需要 pyenv

如果你的系统同时维护多个 Python 项目(如一个用 Python 3.10,另一个用 3.12), pyenv 是必备工具。如果只做一个项目,直接用系统自带的 Python 或 venv/uv 就足够了。

1.8 pipx —— 安装隔离的 Python 应用

前端开发者使用 npx 来临时运行包,使用 npm install -g 来安装全局工具。 Python 生态中,pipx 是最推荐的全局应用安装方式——每个应用安装在独立的虚拟环境中, 互不干扰。

bash
# macOS 安装
brew install pipx
pipx ensurepath

# Linux 安装
sudo apt install pipx
pipx ensurepath

# Windows 安装
pip install pipx
# 然后用 pipx 安装其他工具

# 安装常用开发工具
pipx install ruff       # 代码检查和格式化
pipx install black      # 代码格式化
pipx install poetry     # 包管理器
pipx install httpie     # 类似 curl 但更友好

# 查看已安装
pipx list
ℹ️pipx vs pip install
特性 pip install pipx install
安装位置 当前环境 独立隔离环境
命令可用性 仅在当前环境可用 全局可用
依赖冲突 可能冲突 完全隔离
适用场景 项目依赖 开发工具、CLI 应用

1.9 Python 之禅 (PEP 20)

在开始编码之前,值得花一分钟了解 Python 的设计哲学。在 Python 解释器中输入 import this,你会看到 Tim Peters 于 1999 年撰写的 Python 之禅(The Zen of Python)。这 19 条原则是 Python 社区的"宪法", 深刻影响着 Python 语法和生态的设计。

python
$ python -c "import this"
The Zen of Python, by Tim Peters

Beautiful is better than ugly.        # 优美胜于丑陋
Explicit is better than implicit.      # 明了胜于晦涩
Simple is better than complex.         # 简单胜于复杂
Complex is better than complicated.    # 复杂胜于凌乱
Flat is better than nested.            # 扁平胜于嵌套
Sparse is better than dense.           # 间隔胜于紧凑
Readability counts.                    # 可读性很重要
Special cases aren't special enough to break the rules.
Although practicality beats purity.    # 但实用性打败纯粹性
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
💡关键理念

如果你只记住 Python 之禅中的一句话,请记住:"做某事应该有一种——且最好只有一种——显然的方式。" 这与 JavaScript 的"有多种方式做同一件事"形成了鲜明对比。Python 的这份"偏执"正是其代码风格统一、 易读性强的根本原因。

ℹ️本章小结

在本章中,你完成了 Python 开发环境的搭建:安装了 Python 3.11+、了解了包管理工具(pip / uv / conda)、 配置了 VS Code 开发环境、学习了 Jupyter Notebook 的基本用法,并编写了第一个 Python 程序。

下一章我们将深入 Python 的基础语法,从变量、数据结构到控制流和函数, 每个概念都会与 JavaScript 进行对比,帮助你快速建立 Python 思维模型。