Skip to content

第 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

应用场景对比

领域JavaScriptPython
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.12 或更高版本, 它们带来了显著的性能提升、更友好的错误提示和更现代的语法特性。

Windows 安装步骤

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

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

  3. 验证安装 打开命令提示符(CMD)或 PowerShell,输入以下命令:

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

macOS 安装步骤

  1. 使用 Homebrew 安装(推荐) 如果你已经安装了 Homebrew(macOS 的包管理器,类似 Ubuntu 的 apt):

    bash
    brew install python@3.12
  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 性能、支持嵌套 f-string,错误消息更精准
  • Python 3.13 引入实验性 JIT 编译器和改进 GIL 管理,性能持续进化

1.3 包管理工具

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

pip —— Python 的 "npm"

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

操作npmpip
安装包npm install lodashpip install requests
安装到项目(本地)npm install --save-dev jestpip install -r requirements.txt
卸载包npm uninstall lodashpip uninstall requests
查看已安装npm listpip list
依赖清单文件package.jsonrequirements.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

# 初始化项目(自动生成 pyproject.toml,类似 npm init)
uv init my-project
cd my-project

# 添加依赖(类似 npm install --save)
uv add requests pandas

# 添加开发依赖(类似 npm install -D)
uv add --dev pytest ruff mypy

# 同步依赖(根据 pyproject.toml 安装,类似 npm ci)
uv sync

为什么推荐 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.12

# 激活环境
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)
切换代码 / MarkdownM(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 installpipx 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 思维模型。

从前端到 Python 开发者的进化之路