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,省得后面升级麻烦。

核心建议: 边缘设备上装 Python 3.10.x 或 3.11.x,别追最新版(3.12/3.13),有些老库还没适配。

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
注意: 如果你在内网环境,可能连镜像源也访问不了。这时候需要搭建本地 PyPI 镜像,或者用离线包安装。这个后面章节会专门讲。

换完源后,测试一下:

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,发现 pip 安装的是 x86_64 版本,跑不了。后来才意识到要装 onnxruntime-silicon 或者自己编译。所以,装包前先确认平台架构(uname -m)。

4.6 本章小结

这一章我们干了三件事:

  • 装了 Python 3.10+,并确保版本正确
  • 配置了 pip 镜像源,解决网络慢的问题
  • 学会了用 venv 和 conda 创建虚拟环境,隔离项目依赖

你想想看,这些步骤看起来简单,但实际部署中80%的问题都出在环境上。把地基打牢,后面跑模型、调推理、做优化,才能顺风顺水。

下一章,我们会装上边缘AI的核心工具——ONNX Runtime 和 OpenCV,并跑通第一个推理示例。到时候你就知道,前面这些准备工作有多值了。