环境搭建与版本管理
写代码之前,得先让 Python 在你的电脑上"安家"。这一章要做的事情很朴素:把环境装好、装顺,并且学会用工具同时管理多个 Python 版本——这件事第一天做对,后面三十章都不会被环境问题折腾
写代码之前,得先让 Python 在你的电脑上"安家"。这一章要做的事情很朴素:把环境装好、装顺,并且学会用工具同时管理多个 Python 版本——这件事第一天做对,后面三十章都不会被环境问题折腾。
一、装完 Python,你实际得到了什么
从官网下载的 Python 安装包,装进电脑的不只是一个程序,而是一整套家当:
- 解释器:真正读代码、执行代码的引擎,官方默认实现叫
CPython - 包管理器 pip:Python 世界的"应用商店",安装、卸载第三方库全靠它
- 标准库:随机附赠的一大箱工具,
os、sys、pathlib、urllib……很多需求不用额外装任何东西就能实现 - 交互式终端(REPL):敲一行、立刻看到一行的结果,像块随手演算的小黑板,做实验非常方便
二、发行版怎么挑
"Python"并不是唯一的——同一套语言规范,有很多团队各自做出了能运行的发行版,侧重点还大不相同。下面这份清单不用背,混个眼熟,将来碰到了知道是怎么回事即可。
官方正统
- CPython:C 语言写出来的官方版本,我们平时嘴里的"Python"默认就是它。教材、文档、第三方库全部以它为基准,闭着眼睛选它准没错。
数据科学向
- Anaconda:数据科学"全家桶",一次安装把几百个数据分析、AI 相关的库统统塞进电脑,开箱即用,代价是占好几个 GB 的硬盘。
- Miniconda:把 Anaconda 砍到只剩骨架——一个 Python 本体加一个 conda 包管理器,别的要用再装,清爽得多。
- Miniforge:社区维护的开源 conda 方案,没有 Anaconda 那些商业授权的条条框框,如今不少人直接拿它顶替 Miniconda。
- Mambaforge:Miniforge 的"换芯版"——把 conda 换成了速度飞快的 mamba,解析依赖、安装包都快一大截,等进度条等到心凉的同学可以试试。
商业支持
- ActivePython:商业公司打包的 CPython,替你做过兼容性验证、预置常用依赖,还提供付费技术支持,常见于企业采购场景。
主打性能
- PyPy:自带 JIT 即时编译器,纯 Python 写的程序能跑出比 CPython 快好几倍的速度,短板是对 C 扩展的兼容性一般。
- GraalPy:跑在 GraalVM 上的高性能实现,JIT 优化相当凶猛,还支持与 Java 等多种语言互相调用。
- Cinder:Meta 内部魔改的 CPython,为常年不重启的线上服务优化了运行时和垃圾回收,主要服务自家业务,外面用得不多。
- Nogil:官方试验中的"自由线程"版本——把 GIL(全局解释器锁)拆掉了,多线程终于能真正跑满多个 CPU 核心。
寄居在别的运行时上
- Jython:JVM 上的 Python,代码里可以直接调用 Java 类库,适合需要和 Java 生态打通的项目;不支持 C 扩展。
- IronPython:.NET 平台上的 Python,能直接使用 C# 和 .NET 的库,做 Windows 桌面程序或对接 .NET 系统时很顺手。
特殊领域
- Stackless Python:CPython 的一个分支,用自研的微协程替代了函数调用栈,能轻松扛住海量轻量并发任务,游戏服务器圈子里有它的传说。
- MicroPython:为单片机、嵌入式设备量身定制的迷你版,砍功能换体积和内存,一块几十块钱的开发板就能跑 Python。
结论先行:不知道选哪个,就选 CPython,本课程全程基于它。
三、多版本管理:请出 pyenv
真实工作中你早晚会撞上这种局面:老项目钉死 Python 3.10,新项目想尝鲜 3.13,系统自带的版本又碰不得。挨个下载安装包、来回改环境变量,能把人逼疯。pyenv 就是来救场的——一台电脑同时装 N 个版本,一条命令随时切换,互不干扰。强烈建议从第一天就用它。
macOS 上安装
Mac 直接用 Homebrew 搞定,先备料再装本体:
# 先把编译 Python 源码需要的底层库装齐
brew install zstd openssl readline xz zlib
# 安装 pyenv 本体
brew install pyenv
# 能打印出版本号,说明装好了
pyenv --version
国内网络建议顺手配个镜像,之后下载各版本源码会快很多:
# 在 ~/.zshrc 末尾加上这一行
export PYTHON_BUILD_MIRROR_URL="https://mirrors.aliyun.com/python-release/source/"
Windows 上安装
先以管理员身份打开 PowerShell:
# 放开脚本执行权限,不然安装脚本跑不起来
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
# 下载并运行官方安装脚本
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"
装完后把终端整个关掉、重新开一个,输入 pyenv --version 验证。
Windows 配镜像源走的是环境变量,操作如下:
- 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
- 在用户变量(只影响你自己)或系统变量(影响这台电脑的所有人)里点「新建」,填入:
- 变量名:
PYTHON_BUILD_MIRROR_URL- 变量值:下面任意一个国内镜像地址
https://mirrors.aliyun.com/python
https://mirrors.tuna.tsinghua.edu.cn/python/
https://mirrors.huaweicloud.com/python/
https://registry.npmmirror.com/-/binary/python/
- 一路点确定保存,然后关掉旧终端、重开一个新的,配置才会生效。
pyenv 日常命令速查
# 列出所有可供安装的 Python 版本
pyenv install --list
# 版本太多看不过来?用管道过滤,比如只看 3.13 系列
pyenv install --list | grep "3.13"
# 安装某个具体版本
pyenv install 3.13.2
# 不想要了,卸载它
pyenv uninstall 3.13.2
# 看看本机已经装了哪些版本
pyenv versions
# 当前正在使用的是哪个版本
pyenv version
# 把某个版本设为全局默认
pyenv global 3.13.2
# 只在当前项目目录生效(会在该目录生成 .python-version 文件)
pyenv local 3.13.2
# 只对当前这个终端窗口临时生效,关掉窗口就还原
pyenv shell 3.13.2
global、local、shell 三者谁说了算?优先级是 shell > local > global——越具体的设置,话语权越大,这个设计很符合直觉。
四、跑起第一个程序
环境就位,来点仪式感——让电脑替你说第一句话:
- 新建一个文本文件,在里面写上一行代码:
print("环境已就绪,数据之旅正式启程!") - 把文件保存为
first_step.py(后缀必须是.py) - 打开终端,切换到文件所在的目录,执行:
python first_step.py
看到那句话出现在屏幕上,恭喜——你已经跑通了人生第一个 Python 程序。
五、编辑器选哪个
代码总得有个地方写,主流选择有两个:
说实话,两个都能把活干漂亮,纠结选哪个的时间不如多敲两行代码。
本课程统一使用 VSCode,理由有三:
- 以后不管写前端、写后端还是做数据分析,尽量都用同一个编辑器,少一次切换就少一分心智负担
- 它对 AI 辅助编程这套玩法支持得最到位,而这是往后的大趋势
- 够轻快,几乎秒开,配置一般的电脑也带得动
先装四个插件
VSCode 装好后,在左侧扩展面板里依次搜索安装:
- Python:语法高亮、智能补全、调试运行、虚拟环境识别,一个顶四个,必装核心
- Code Runner:右键一点就运行代码,连终端命令都省了,新手期的幸福感来源
- Black Formatter:保存文件时自动把代码排版成统一风格,从此告别手动对齐
- Chinese (Simplified):界面中文汉化,看英文界面费劲的同学的福音
再配两份设置
按 Ctrl + ,(Mac 上是 Cmd + ,)打开设置,切换到 JSON 编辑模式,把下面两段加进去。
第一段,让 Code Runner 用正确的 Python 解释器跑代码:
"code-runner.executorMap": {
// ...
// 注意:这里必须填你自己电脑上 python 的绝对路径
"python": "/Users/你的用户名/.pyenv/shims/python -u",
}
第二段,保存时自动格式化:
"editor.formatOnSave": true,
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter",
"editor.tabSize": 4,
"editor.insertSpaces": true,
}
到这里,一套趁手的开发环境就齐活了。
课后练习
- 用 pyenv 在自己电脑上安装一个 Python 版本(比如 3.13 系列),并通过
python --version确认当前版本切换成功 - 新建
first_step.py,用print输出一句你想对这门课说的话,并保证在终端里能成功运行
下一章:02 · 变量、表达式与流程控制