首页/Python 与数据实践/环境搭建与版本管理
Python 与数据实践 · 第 01 章

环境搭建与版本管理

写代码之前,得先让 Python 在你的电脑上"安家"。这一章要做的事情很朴素:把环境装好、装顺,并且学会用工具同时管理多个 Python 版本——这件事第一天做对,后面三十章都不会被环境问题折腾

约 11 分钟4,393 字6 个代码示例

写代码之前,得先让 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 配镜像源走的是环境变量,操作如下:

  1. 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
  2. 在用户变量(只影响你自己)或系统变量(影响这台电脑的所有人)里点「新建」,填入: - 变量名: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/
  1. 一路点确定保存,然后关掉旧终端、重开一个新的,配置才会生效。

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——越具体的设置,话语权越大,这个设计很符合直觉。

四、跑起第一个程序

环境就位,来点仪式感——让电脑替你说第一句话:

  1. 新建一个文本文件,在里面写上一行代码:print("环境已就绪,数据之旅正式启程!")
  2. 把文件保存为 first_step.py(后缀必须是 .py)
  3. 打开终端,切换到文件所在的目录,执行:python first_step.py

看到那句话出现在屏幕上,恭喜——你已经跑通了人生第一个 Python 程序。

五、编辑器选哪个

代码总得有个地方写,主流选择有两个:

  • PyCharm:Python 专用 IDE,为 Python 深度定制,装好就能直接开工。
  • VSCode:通用型编辑器,出厂不带 Python 能力,装上插件后十八般武艺样样精通。

说实话,两个都能把活干漂亮,纠结选哪个的时间不如多敲两行代码。

本课程统一使用 VSCode,理由有三:

  1. 以后不管写前端、写后端还是做数据分析,尽量都用同一个编辑器,少一次切换就少一分心智负担
  2. 它对 AI 辅助编程这套玩法支持得最到位,而这是往后的大趋势
  3. 够轻快,几乎秒开,配置一般的电脑也带得动

先装四个插件

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,
}

到这里,一套趁手的开发环境就齐活了。

课后练习

  1. 用 pyenv 在自己电脑上安装一个 Python 版本(比如 3.13 系列),并通过 python --version 确认当前版本切换成功
  2. 新建 first_step.py,用 print 输出一句你想对这门课说的话,并保证在终端里能成功运行

下一章:02 · 变量、表达式与流程控制