4、开发环境基石:Python 3.10+ 安装、pip换源、虚拟环境(venv/conda)搭建
好,咱们正式开始动手了。这一章要解决的是「地基」问题。你想想看,边缘设备上跑AI推理,Python版本不对、依赖包冲突、权限不够——这些坑我全踩过。所以这一章,我会带你一步步把Python环境搭稳,后面写代码才不慌。
4.1 为什么非要用 Python 3.10+?
说实话,Python 3.6 到 3.9 也能跑很多模型。但到了2024年,主流AI框架(比如 PyTorch 2.x、ONNX Runtime 1.16+)都开始要求 3.10 起步。我在项目中遇到过,用 Python 3.8 装最新版 PyTorch,直接报「找不到匹配的wheel」。嗯,这就是版本不兼容的典型表现。
另外,Python 3.10 引入了 match-case 语法,写边缘设备的配置解析时特别顺手。我个人习惯,新项目一律用 3.10 或 3.11,省得后面升级麻烦。
4.2 安装 Python 3.10+(Linux / Windows / macOS)
边缘设备最常见的是 Linux(Ubuntu、Debian、树莓派OS)。Windows 和 macOS 也有,但部署场景少一些。我按平台分开讲。
4.2.1 Linux(Ubuntu / Debian 系)
别用系统自带的 apt 装 Python,版本太老。我推荐用 deadsnakes PPA 或者源码编译。下面是我常用的方式:
# 添加 deadsnakes 源(Ubuntu 20.04/22.04 通用)
sudo apt update
sudo apt install software-properties-common -y
sudo add-apt-repository ppa:deadsnakes/ppa -y
sudo apt update
# 安装 Python 3.10
sudo apt install python3.10 python3.10-dev python3.10-venv -y
# 验证
python3.10 --version
# 输出:Python 3.10.12
如果你在树莓派上,或者系统是 Debian 11/12,也可以用类似方法。我曾经在 Jetson Nano 上装 Python 3.10,发现官方源里没有,最后用源码编译的——耗时大概20分钟,但一次搞定。
python3 软链接指向 3.10,但别改系统自带的 /usr/bin/python3,容易搞崩系统。我习惯用 update-alternatives 管理。
4.2.2 Windows
Windows 边缘设备(比如一些工业平板)直接去官网下载安装包:
- 访问
python.org,下载 Python 3.10.x 的 Windows installer - 安装时 务必勾选「Add Python to PATH」
- 安装路径建议用默认的
C:\Users\你的用户名\AppData\Local\Programs\Python\Python310
装完后打开 PowerShell 验证:
python --version
pip --version
如果提示找不到命令,八成是 PATH 没加。手动加一下环境变量就行。我记得有一次帮客户远程调试,他装完 Python 死活跑不了,最后发现是安装时没勾选 PATH——这种小问题最坑人。
4.2.3 macOS
macOS 自带 Python 3.9,但别用。我推荐用 Homebrew 装:
brew install python@3.10
brew link --overwrite python@3.10
python3.10 --version
或者用 pyenv 管理多版本,这个后面会讲到。
4.3 pip 换源:别让网络卡脖子
你想想看,边缘设备往往网络不好,或者在内网环境。用默认的 PyPI 源下载包,动不动就超时。我个人的习惯是,装完 Python 第一件事就是换源。
国内常用的镜像源:
| 源名称 | URL | 推荐指数 |
|---|---|---|
| 清华大学 TUNA | https://pypi.tuna.tsinghua.edu.cn/simple | ⭐⭐⭐⭐⭐ |
| 阿里云 | https://mirrors.aliyun.com/pypi/simple | ⭐⭐⭐⭐ |
| 中科大 USTC | https://pypi.mirrors.ustc.edu.cn/simple | ⭐⭐⭐⭐ |
| 华为云 | https://repo.huaweicloud.com/repository/pypi/simple | ⭐⭐⭐ |
配置方法(永久生效):
# Linux / macOS
mkdir -p ~/.pip
cat > ~/.pip/pip.conf << EOF
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn
EOF
# Windows(在用户目录下创建 pip.ini)
# 路径:C:\Users\你的用户名\pip\pip.ini
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn
换完源后,测试一下:
pip install numpy
# 应该能看到从 tuna 下载,速度飞快
4.4 虚拟环境:venv vs conda
为什么需要虚拟环境?说白了,就是隔离依赖。你想想看,项目A需要 PyTorch 1.13,项目B需要 PyTorch 2.1,如果装在同一套 Python 里,迟早出问题。我在项目中遇到过,两个项目依赖冲突,调试了一下午才发现是包版本不对。
虚拟环境就是给每个项目一个独立的 Python 沙箱。常用的有两种:venv(Python 内置)和 conda(Anaconda/Miniconda)。
4.4.1 venv:轻量级首选
venv 是 Python 3.3+ 自带的,不需要额外安装。我个人习惯,简单项目用 venv 就够了。
# 创建虚拟环境
python3.10 -m venv myenv
# 激活(Linux/macOS)
source myenv/bin/activate
# 激活(Windows)
myenv\Scripts\activate
# 退出
deactivate
激活后,终端前面会出现 (myenv) 提示符。这时候安装的所有包都只在这个环境里生效。
.venv(带点号,隐藏文件夹)。然后用 .gitignore 忽略它,避免提交到代码仓库。
4.4.2 conda:适合复杂依赖场景
conda 比 venv 强大,能管理 Python 版本和非 Python 库(比如 CUDA、OpenCV)。如果你做边缘AI部署,经常需要装一些底层库,conda 会省心很多。
安装 Miniconda(推荐,比 Anaconda 轻量):
# Linux
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
# 安装过程中一路 yes,最后选择是否初始化 conda
# 建议选 yes,会自动加到 PATH
创建和管理环境:
# 创建环境,指定 Python 版本
conda create -n edge_ai python=3.10
# 激活
conda activate edge_ai
# 安装包
conda install numpy opencv
# 退出
conda deactivate
# 查看所有环境
conda env list
# 删除环境
conda remove -n edge_ai --all
我曾经在 Jetson 设备上用 conda 装 PyTorch,发现 conda 会自动处理 CUDA 依赖,比 pip 省事多了。不过 conda 的包更新速度比 pip 慢一点,有些新库可能没有 conda 版本。
4.4.3 选哪个?我的建议
| 场景 | 推荐工具 | 理由 |
|---|---|---|
| 纯 Python 项目,依赖简单 | venv | 轻量、内置、无额外依赖 |
| 需要管理 Python 版本 | conda 或 pyenv | conda 可以指定 Python 版本创建环境 |
| 涉及 CUDA、OpenCV 等底层库 | conda | 自动处理非 Python 依赖 |
| 边缘设备资源紧张(如 1GB RAM) | venv | conda 本身占用几百 MB |
嗯,这里要注意:如果你用 conda,建议同时配置 conda 的镜像源,不然下载也慢。配置方法和 pip 类似:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
4.5 实战:搭建一个边缘AI开发环境
好,理论讲完了,咱们动手搭一个完整的开发环境。假设你有一台 Ubuntu 22.04 的边缘设备(比如 Jetson Orin 或 x86工控机)。
完整步骤:
# 1. 安装 Python 3.10
sudo apt update
sudo apt install python3.10 python3.10-dev python3.10-venv -y
# 2. 配置 pip 镜像源(清华)
mkdir -p ~/.pip
cat > ~/.pip/pip.conf << EOF
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn
EOF
# 3. 创建项目目录和虚拟环境
mkdir ~/edge_ai_project
cd ~/edge_ai_project
python3.10 -m venv .venv
# 4. 激活环境
source .venv/bin/activate
# 5. 安装常用AI库(测试网络)
pip install numpy==1.24.3
pip install onnxruntime==1.16.3
pip install opencv-python==4.8.1.78
# 6. 验证
python -c "import numpy; print(numpy.__version__)"
python -c "import onnxruntime; print(onnxruntime.__version__)"
如果一切顺利,你会看到版本号输出。这时候,你的边缘AI开发环境就搭好了。
onnxruntime-silicon 或者自己编译。所以,装包前先确认平台架构(uname -m)。
4.6 本章小结
这一章我们干了三件事:
- 装了 Python 3.10+,并确保版本正确
- 配置了 pip 镜像源,解决网络慢的问题
- 学会了用 venv 和 conda 创建虚拟环境,隔离项目依赖
你想想看,这些步骤看起来简单,但实际部署中80%的问题都出在环境上。把地基打牢,后面跑模型、调推理、做优化,才能顺风顺水。
下一章,我们会装上边缘AI的核心工具——ONNX Runtime 和 OpenCV,并跑通第一个推理示例。到时候你就知道,前面这些准备工作有多值了。