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+ | 全部 | 首选,含最新安全补丁 |
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 集成项目首选,轻快 | 数据科学项目用,交叉依赖多时方便 |
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 旁边,每次开新项目照着来一遍。
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、写代码了——只要环境不乱,调试基本不会因为“我明明装了为什么还报错”而卡壳。