环境搭建
Python 的环境搭建相比 Node.js 来说稍显复杂,但也有相似的地方。作为前端开发者,你已经熟悉了 Node.js 的安装和包管理,Python 的环境配置过程会有很多相似的概念。
在线环境(推荐)
考虑到环境搭建的复杂性,本教程提供了在线可执行的代码环境,你可以直接在浏览器中运行 Python 代码,无需本地安装,就像在浏览器控制台中写 JavaScript 一样方便。
在线环境优势
- 无需安装配置,开箱即用
- 跨平台,任何设备都能学习
- 所有代码都可以直接运行和修改
- 专注于语言学习,而不是环境问题
Python 安装
版本选择
JavaScript 开发中,我们通常使用最新的 LTS 版本的 Node.js。Python 也有类似的策略,目前推荐使用 Python 3.9+版本,最新稳定版本是 Python 3.12。
版本说明
- Python 2.x 已经停止维护,不要使用
- Python 3.6 以下版本缺少现代特性,不推荐
- Python 3.9+是目前的主流选择,兼容性和功能都比较完善
Windows 安装
- 访问 Python 官网
- 下载 Windows 版本的 Python 安装包
- 运行安装程序时,务必勾选"Add Python to PATH"
- 选择"Customize installation"进行自定义安装
- 在可选功能中,确保勾选 pip、IDLE 等组件
macOS 安装
方法一:官方安装包
从 Python 官网 下载 macOS 版本,直接安装即可。
方法二:Homebrew(推荐)
如果你熟悉前端开发,应该已经在使用 Homebrew 了,就像 npm 一样方便:
方法三:pyenv(类似 nvm)
就像 Node.js 有 nvm 来管理多版本,Python 也有 pyenv:
验证安装
安装完成后,打开终端(Command Prompt、PowerShell 或 Terminal)验证:
在命令行中也可以验证:
注意
在某些系统中,python
命令可能指向 Python 2.x,而python3
才是 Python 3.x。建议使用python3
命令,或者配置别名。
包管理器
pip vs npm
JavaScript 有 npm/yarn/pnpm,Python 有 pip 作为默认包管理器。但在依赖管理机制上有重要差异:
功能 | JavaScript | Python |
---|---|---|
项目依赖安装 | npm install package | pip install package (需在虚拟环境中) |
安装指定版本 | npm install package@2.28.0 | pip install package==2.28.0 |
更新包 | npm update package | pip install package --upgrade |
全局安装 | npm install -g package | pip install package (系统级安装) |
卸载包 | npm uninstall package | pip uninstall package |
查看已安装包 | npm list | pip list |
查看包信息 | npm info package | pip show package |
依赖文件 | package.json | requirements.txt |
导出依赖 | 自动生成 | pip freeze > requirements.txt |
安装依赖 | npm install | pip install -r requirements.txt |
锁定文件 | package-lock.json | pip-tools 生成 |
开发依赖 | npm install -D package | pip install package (需手动区分) |
重要差异:依赖管理机制
这是 Python 和 JavaScript 最大的区别之一:
JavaScript(npm):
- 每个项目自动拥有独立的
node_modules
目录 - 依赖默认安装在项目级别,自然隔离
- 全局安装需要
-g
参数
Python(pip):
- pip 默认安装到系统级 Python 环境
- 需要手动创建虚拟环境来实现项目级依赖隔离
- 虚拟环境激活后,pip 行为类似 npm 的项目级安装
虚拟环境详解
为什么需要虚拟环境
在 Node.js 开发中,每个项目都有自己的node_modules
目录,包依赖是项目级别的,天然隔离。Python 默认是全局安装包,这可能导致版本冲突问题。
举个例子:
- 项目 A 需要 Django 3.2
- 项目 B 需要 Django 4.0
- 如果全局安装,只能保留一个版本
虚拟环境就是 Python 解决这个问题的方案,它为每个项目创建独立的 Python 环境,类似于给每个项目一个独立的"node_modules"。
venv(推荐)
Python 3.3+内置了 venv 模块:
virtualenv
virtualenv 是第三方工具,功能更丰富:
conda
Anaconda/Miniconda 提供的环境管理工具,特别适合数据科学:
开发环境选择
IDE/编辑器
作为前端开发者,你应该已经在使用 VS Code 了,它对 Python 也有很好的支持:
VS Code(推荐)
- 安装 Python 扩展包(Microsoft 官方)
- 安装 Pylance(更好的语言支持)
- 可选安装 Black(代码格式化)、Flake8(代码检查)
VS Code 的 Python 开发体验和 JavaScript 开发类似,有智能提示、调试、集成终端等功能。
PyCharm
JetBrains 出品的专业 Python IDE,功能强大但相对重量级,适合大型项目。
Jupyter Notebook
Jupyter Notebook 特别适合数据分析和学习,类似于在线的交互式环境。
代码格式化和检查
JavaScript 项目中我们使用 Prettier、ESLint,Python 也有对应的工具:
代码格式化:Black
Black 是 Python 的代码格式化工具,类似于 Prettier。它的特点是"零配置",强制统一的代码风格,被称为"不妥协的代码格式化工具"。
代码检查:Flake8
Flake8 是 Python 的代码检查工具,类似于 ESLint。它检查代码风格、语法错误和复杂度问题,帮助保持代码质量。
静态类型检查:mypy
mypy 是 Python 的静态类型检查器,类似于 TypeScript 的类型检查功能。虽然 Python 是动态类型语言,但通过类型注解可以享受静态类型检查的好处。
在 VS Code 中配置自动格式化(类似配置 Prettier 和 ESLint):
方法一:全局配置
- 按
Ctrl+Shift+P
(macOS:Cmd+Shift+P
)打开命令面板 - 输入"Preferences: Open Settings (JSON)"
- 在
settings.json
文件中添加以下配置:
方法二:项目级配置
在项目根目录创建.vscode/settings.json
文件,添加相同配置(推荐,类似.eslintrc.js
的项目级配置)。
项目结构详解
Python 项目的典型结构和 Node.js 项目有相似之处,但也有一些 Python 特有的文件:
my-python-project/
├── src/ # 源代码目录
│ ├── __init__.py # 包标识文件(Python 特有)
│ ├── main.py # 主程序入口
│ └── utils/ # 工具模块
│ ├── __init__.py
│ └── helpers.py
├── tests/ # 测试文件目录
│ ├── __init__.py
│ └── test_main.py
├── requirements.txt # 项目依赖列表
├── setup.py # 包发布配置(可选)
├── pyproject.toml # 现代 Python 项目配置(推荐)
├── README.md # 项目说明
├── .gitignore # Git 忽略文件
├── .env # 环境变量文件
└── venv/ # 虚拟环境目录(通常加入.gitignore)
文件作用详解
__init__.py
- 包标识文件(Python 特有)
JavaScript 中,任何包含文件的目录都可以被导入。Python 需要__init__.py
文件来标识目录为包:
这相当于 Node.js 中的index.js
文件,用于定义包的对外接口。
requirements.txt
- 依赖管理
相当于 JavaScript 的package.json
中的 dependencies 部分:
对比 JavaScript 的依赖声明:
setup.py
- 包发布配置
类似于package.json
的元数据和发布配置部分,用于将 Python 项目打包发布到 PyPI(Python 的 npm registry):
pyproject.toml
- 现代项目配置(推荐)
新的 Python 项目标准,相当于更现代的package.json
:
项目类型对比
简单脚本项目
script-project/
├── main.py
├── requirements.txt
└── README.md
可安装包项目
package-project/
├── src/
│ └── mypackage/
│ ├── __init__.py
│ └── main.py
├── tests/
├── setup.py 或 pyproject.toml
├── requirements.txt
└── README.md
Web 应用项目
web-app/
├── app/
│ ├── __init__.py
│ ├── main.py
│ ├── models/
│ ├── views/
│ └── templates/
├── static/
├── requirements.txt
├── .env
└── README.md
开发工作流对比
阶段 | JavaScript | Python |
---|---|---|
初始化项目 | npm init | mkdir project && cd project |
创建虚拟环境 | 自动(node_modules) | python -m venv venv |
激活环境 | 无需操作 | source venv/bin/activate |
安装依赖 | npm install | pip install -r requirements.txt |
添加依赖 | npm install package | pip install package && pip freeze > requirements.txt |
运行项目 | npm start | python main.py |
发布包 | npm publish | python setup.py sdist bdist_wheel && twine upload dist/* |
相关链接
- setuptools 文档 - Python 包构建工具
- twine - 用于上传 Python 包到 PyPI
- pip-tools - 用于生成锁定文件
- mypy - Python 静态类型检查器
如何运行 Python 代码
环境搭建完成后,你就可以开始运行 Python 代码了。JavaScript 开发者熟悉多种代码执行环境:浏览器控制台、网页 script 标签、Node.js 脚本文件。Python 的执行方式更加统一简洁。
交互式解释器(REPL)
类似于浏览器控制台,Python 提供了交互式解释器(Read-Eval-Print Loop,简称 REPL)。这是学习和测试 Python 代码的绝佳方式:
进入 REPL 后,你会看到类似这样的提示符:
现在你可以逐行输入和执行 Python 代码:
REPL 的优势:
- 立即看到代码执行结果,类似浏览器控制台
- 适合快速测试想法和调试代码片段
- 内置的
help()
函数可以查看文档 - 可以导入库并立即测试功能
要退出 REPL,输入 exit()
或使用快捷键 Ctrl+D
(macOS/Linux)或 Ctrl+Z
(Windows)。
脚本文件执行
对于较复杂的程序,我们通常将代码保存在 .py
文件中,然后执行整个文件。这相当于 Node.js 中运行 .js
文件:
创建 Python 脚本
创建一个名为 hello.py
的文件:
执行脚本文件
在终端中运行:
比较 JavaScript 和 Python 的执行方式:
Python 执行环境的优势
相比 JavaScript 需要不同的运行环境(浏览器、Node.js),Python 的执行方式更加统一:
- 环境统一:同样的代码在不同平台行为一致,不存在浏览器兼容性问题
- 工具丰富:Python 解释器自带大量标准库,无需额外安装就能完成很多任务
- 学习简单:不需要考虑前端开发中的复杂环境配置和兼容性问题
- 即时执行:解释型语言的特性让代码修改后立即生效,无需编译步骤
开发工具中的 Python 执行
大多数现代编辑器都内置了 Python 执行功能:
VS Code:
- 安装 Python 扩展后,可以直接在编辑器中运行 Python 文件
- 支持交互式 Python 窗口,类似 Jupyter Notebook
- 内置终端可以运行 Python 命令
PyCharm:
- 专业的 Python IDE,内置强大的执行和调试功能
- 支持交互式控制台和科学计算模式
对于学习 Python,推荐从 REPL 开始熟悉语法,然后逐步过渡到编写和执行脚本文件。
小结
Python 的环境搭建相比 Node.js 稍显复杂,但概念很相似。主要差异包括:
- 版本管理:Python 有 pyenv(类似 nvm),用于管理多个 Python 版本
- 包管理:pip 是默认选择(类似 npm),但没有内置的锁定文件机制
- 虚拟环境:Python 需要手动创建项目级依赖隔离(Node.js 的 node_modules 是自动的)
- 代码执行:交互式 REPL 和脚本文件执行,环境统一性好
- 开发工具:VS Code 对 Python 支持很好,配置方式和 JavaScript 项目类似
对于学习阶段,推荐使用本教程提供的在线环境,可以跳过复杂的配置过程,专注于 Python 语言本身的学习。当你需要开发实际项目时,再根据项目需求搭建本地开发环境。
快速参考链接
官方资源
开发工具
包管理和环境
- pip 文档 - Python 包管理器
- virtualenv - 虚拟环境工具
- pyenv - Python 版本管理
- Anaconda - 数据科学 Python 发行版