4. 开发环境准备:Python 环境安装与配置

做 SDK 集成,第一步就是把编程环境搭起来。说白了,地基没打好,后面全是坑。

我个人习惯用 Python 3.8 以上版本。不是刻意追新,而是 SDK 的依赖库普遍要求 3.8+。你想想看,有些库在 3.6 上跑会报语法错误,折腾半天发现是版本问题,多冤。

4.1 Python 版本选择:为什么是 3.8+

我记得刚开始做数据安全项目时,团队里有人用 Python 3.7。集成某 SDK 的 http 客户端时,死活连不上 TLS 1.3 的端点。查了两天,发现是 3.7 的 ssl 模块默认不支持。升级到 3.8,一次过。

Python 3.8 带来的关键能力:

  • 赋值表达式(海象运算符 :=)——很多 SDK 示例代码用它简化循环
  • 类型提示增强——TypedDict、Literal,让接口文档更清晰
  • 改进的 asyncio——异步调用 SDK 时更稳
  • 安全更新——SSL/TLS 配置更灵活
版本 最低 SDK 兼容性 我的推荐
3.8 绝大多数 可以用,但建议 3.10+
3.9 几乎全部 可用
3.10+ 全部 首选,含最新安全补丁
小提示:如果你在 Windows 上装 Python,安装时记得勾选 “Add Python to PATH”。否则后面运行 python 命令还得配环境变量,烦得很。

4.2 安装 Python(三大平台)

Windows

去官网下载安装包。我个人建议用 Windows x86-64 executable installer。装完打开命令行,输入:

python --version

看到版本号就对了。如果提示“命令不存在”,多半是 PATH 没加。重装时勾选那个选项就行。

macOS

macOS 自带的 Python 是 2.7,已经过时了。我用 brew 安装:

brew install python@3.11

也可以去官网下载 pkg 包。装好记得用 python3 --version 验证。

Linux(Ubuntu / Debian)

sudo apt update
sudo apt install python3 python3-pip python3-venv -y

其中 python3-venv 是虚拟环境工具,后面会用到。我至今记得第一次在 CentOS 上装少了这个,跑 python3 -m venv 报错,当时整个人都懵了。

4.3 虚拟环境:让项目互不干扰

为什么需要虚拟环境?你想想看,同时做两三个项目,一个依赖 requests 2.25,另一个要 2.31,全装到系统里肯定打架。虚拟环境相当于给每个项目开了个独立的小天地。

Python 自带 venv,不用额外安装。用法极简单:

# 创建虚拟环境
python3.11 -m venv dspm_env

# 激活(Windows)
dspm_env\Scripts\activate

# 激活(Mac / Linux)
source dspm_env/bin/activate

# 退出
deactivate

激活后,终端前面会出现 (dspm_env) 标识,告诉你已经进到隔离区了。

我曾经踩过一个坑:项目用 venv 建好,但没把 venv/ 目录加到 .gitignore。结果推上去,队友拉下来直接冲突。后来我统一在项目根目录放一个 .python-version 文件,配合 pyenv 管理 Python 版本,舒服多了。

venv vs conda:怎么选?

特性 venv conda
安装方式 Python 内置,零依赖 需要单独装 Anaconda / Miniconda
支持语言 仅 Python Python + R + C++ 等
包来源 PyPI Anaconda 仓库 + PyPI
体积 轻量(几 MB) 较重(几百 MB)
我的建议 SDK 集成项目首选,轻快 数据科学项目用,交叉依赖多时方便
推荐做法:做 SDK 集成,用 venv 就够了。不要让 conda 的环境炸掉你调试时的脑细胞。

4.4 包管理工具 pip 与依赖锁定

pip 是 Python 的包管理器,装包用它:

pip install requests  # 安装最新版
pip install requests==2.31.0  # 固定版本
pip install -r requirements.txt  # 批量安装

但要注意,直接 pip install 会拉到最新版,可能会破坏已有依赖。我建议每次项目开始就做冻结:

pip freeze > requirements.txt

这个文件记录了所有包及其精确版本号。队友克隆项目后执行 pip install -r requirements.txt,就能复现一模一样的环境。我在项目中见过太多次“我本地能跑但服务器报错”的惨案,都是因为依赖版本不一致。

另外,pip 有个好用的选项 --upgrade 可以批量升级:

pip install --upgrade pip  # 升级 pip 自身
警告:不要用 sudo pip install 装全局包,尤其在 Mac/Linux 上。这会覆盖系统 Python 的包,搞不好连操作系统都会出问题。相信我,我干过一次,结果 Python 脚本运行异常,最后重装了系统。

4.5 开发环境工作流程总览

下面这张图概括了从零搭建环境到开始编码的完整路线。你可以把它贴在 IDE 旁边,每次开新项目照着来一遍。

开发环境准备流程图 安装 Python 3.8+ 创建虚拟环境 激活虚拟环境 pip 安装 SDK 依赖 运行测试用例验证 pip freeze > requirements.txt 开始编码 顺序:安装 → 创建虚拟环境 → 激活 → 安装依赖(同时生成锁定)→ 验证 → 开始编码

4.6 一些零碎但有用的习惯

  • 用 python -m pip 而不是 pip —— 避免 PATH 混乱导致执行了别的 pip 实例
  • 在项目根目录放 .gitignore —— 把 venv/、__pycache__/、.DS_Store 加进去
  • 定期 pip list --outdated —— 检查哪些包能升级,但生产环境不要盲目升
  • 使用 virtualenvwrapper(可选) —— 如果觉得内置 venv 不够方便,可以装这个扩展,它提供 mkvirtualenv、workon 等快捷命令
一点私货:我习惯在 ~/.bashrc 或 ~/.zshrc 里加一个别名 alias act='source venv/bin/activate'。敲三个字母就能激活环境,省得每次打一长串。

环境准备这块看起来琐碎,但每一步都影响后续开发效率。接下来你就可以放心地装 SDK、写代码了——只要环境不乱,调试基本不会因为“我明明装了为什么还报错”而卡壳。