第 1 章:Python 环境搭建
作为前端开发者,你已经掌握了 JavaScript 的语法和生态。本章将带你完成从"前端思维"到"Python 思维"的初步转换, 搭建一套高效、现代的 Python 开发环境,为后续学习打下坚实基础。
1.1 为什么选择 Python
你可能已经用 JavaScript 构建了无数精美的网页和交互体验,但 Python 能为你打开另一扇大门—— 从后端服务、数据分析到 AI 应用开发,Python 凭借其简洁的语法和强大的生态,成为当今最通用的编程语言之一。
JavaScript vs Python 语法对比
让我们先看一段功能相同的代码,直观感受两者的差异:
// 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: 获取用户列表并筛选成年人
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 安装步骤
-
下载安装包
访问 python.org/downloads,下载最新版 Python 3.11+ 的 Windows installer(64-bit)。
-
运行安装程序
关键步骤:勾选 "Add python.exe to PATH"(添加到环境变量), 然后点击 "Install Now"。这相当于把 Python 注册为全局可用命令,类似 Node.js 安装时的 PATH 配置。
-
验证安装
打开命令提示符(CMD)或 PowerShell,输入以下命令:
bashpython --version # 输出: Python 3.11.x python -c "print('Hello from Python')" # 输出: Hello from Python
macOS 安装步骤
-
使用 Homebrew 安装(推荐)
如果你已经安装了 Homebrew(macOS 的包管理器,类似 Ubuntu 的 apt):
bashbrew install python@3.11 -
验证安装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 |
# 安装 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。
# 安装 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
作为前端开发者,你已经习惯了 pnpm 的极速安装体验。uv 就是 Python 生态的 "pnpm": 安装速度快、缓存机制高效、支持全局锁文件。对于现代 Python 开发,uv 是首选工具。
conda / miniconda —— 数据科学首选
如果你计划深入数据分析或机器学习领域,conda 是更好的选择。它不仅管理 Python 包, 还能管理非 Python 依赖(如 CUDA、MKL 等底层库),这在 AI 开发中至关重要。
# 安装 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 的开发体验, 包括智能提示、代码格式化、断点调试等。
必装扩展
-
Python 扩展(Microsoft 官方)
在扩展商店搜索 "Python",安装 Microsoft 出品的官方扩展。它提供 IntelliSense、代码导航、调试支持等核心功能。
-
Ruff 扩展(代码格式化和检查)
Ruff 是 Python 生态中最快的 linter 和 formatter,由 Rust 编写。它同时替代了 flake8、black、isort 等多个工具。 安装扩展后,在设置中启用 Ruff 作为默认格式化工具。
-
Pylance(类型检查,可选)
如果你习惯 TypeScript 的类型安全,Pylance 提供强大的类型推断和检查功能,帮助你在 Python 中写出更健壮的代码。
配置 Python 解释器
安装扩展后,按 Ctrl+Shift+P(macOS: Cmd+Shift+P)打开命令面板,输入并选择:
Python: Select Interpreter
# 选择你安装的 Python 版本,如 Python 3.11.x
推荐 settings.json 配置
在项目根目录创建 .vscode/settings.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:
{
"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
# 使用 pip 安装
pip install jupyter
# 或使用 uv(更快)
uv pip install jupyter
启动 Jupyter
jupyter notebook
# 自动打开浏览器,地址通常为 http://localhost:8888
基本操作
| 操作 | 快捷键 / 方式 | 类比前端 |
|---|---|---|
| 运行当前单元格 | Shift + Enter |
在 Console 中执行当前行 |
| 插入单元格(下方) | B |
— |
| 插入单元格(上方) | A |
— |
| 删除单元格 | D, D(按两次 D) |
— |
| 切换代码 / Markdown | M(Markdown)/ Y(代码) |
— |
| 查看变量 | 直接输入变量名执行 | Console 中输入变量名 |
安装 Python 扩展后,VS Code 原生支持 .ipynb 文件。你可以直接在 VS Code 中创建和编辑 Notebook,
无需打开浏览器。这是我最推荐的工作方式——统一的编辑器,统一的快捷键。
1.6 第一个程序
环境准备就绪,现在来写你的第一个 Python 程序。我们将通过三种方式运行代码,帮助你理解 Python 的执行模式。
方式一:交互式解释器(REPL)
在终端输入 python(或 python3)进入交互式环境,类似于浏览器的 DevTools Console:
$ python
Python 3.11.4 (main, Jun 7 2023, 10:13:09)
>>> print("Hello, World!")
Hello, World!
>>> name = "前端开发者"
>>> print(f"欢迎你,{name}!")
欢迎你,前端开发者!
>>> exit() # 退出解释器
上面代码中的 f"欢迎你,{name}!" 是 Python 3.6+ 引入的 f-string 格式化语法,
功能类似 JavaScript 的模板字符串 `欢迎你,${name}!`,非常直观易用。
方式二:运行 .py 文件
创建 hello.py 文件,这是生产环境中最常用的执行方式:
# hello.py
# 这是我的第一个 Python 程序
name = "前端开发者"
language = "Python"
print(f"Hello, {name}!")
print(f"欢迎来到 {language} 的世界!")
# 简单的计算
a = 10
b = 20
print(f"{a} + {b} = {a + b}")
$ 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
# 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 文件 |
# 常用工作流示例
# 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)
如果你的系统同时维护多个 Python 项目(如一个用 Python 3.10,另一个用 3.12), pyenv 是必备工具。如果只做一个项目,直接用系统自带的 Python 或 venv/uv 就足够了。
1.8 pipx —— 安装隔离的 Python 应用
前端开发者使用 npx 来临时运行包,使用 npm install -g 来安装全局工具。
Python 生态中,pipx 是最推荐的全局应用安装方式——每个应用安装在独立的虚拟环境中,
互不干扰。
# 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
| 特性 | 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 -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 思维模型。