4、Python环境配置:Miniforge安装、Conda环境创建、PyTorch for Jetson安装、torchvision安装、ONNX Runtime安装

好,咱们进入正题。Python环境配置,这步看着基础,但坑是真不少。我见过太多新手在Jetson上直接pip install torch,然后卡半天报错,心态直接崩了。说白了,Jetson是ARM架构,跟咱们的x86电脑不一样,很多包得用专门编译好的版本。

我个人习惯,在Jetson上做深度学习部署,首选Miniforge来管理环境。为什么不用Anaconda?太重了,而且对ARM的支持不如Miniforge好。Miniforge轻量、干净,还默认走conda-forge通道,省心不少。

4.1 Miniforge安装

先下载Miniforge的安装脚本。注意,一定要选对版本——Jetson是aarch64架构,别下成x86_64的了。

# 下载Miniforge(适用于Jetson的aarch64版本)
wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-aarch64.sh

# 运行安装脚本
bash Miniforge3-Linux-aarch64.sh

安装过程中会问安装路径,我一般就用默认的~/miniforge3。还会问要不要初始化conda,选yes就行。安装完记得重新打开终端,或者source ~/.bashrc让配置生效。

小提示: 如果你之前装过其他版本的conda,建议先卸载干净。我遇到过两个conda打架的情况,环境变量乱成一团,排查了半天。

4.2 Conda环境创建

环境隔离是个好习惯。每个项目一个独立环境,互不干扰。我一般这样创建:

# 创建一个名为 jetson_env 的环境,指定Python版本为3.8
conda create -n jetson_env python=3.8

# 激活环境
conda activate jetson_env

Python版本选3.8还是3.10?嗯,这里要注意。PyTorch for Jetson官方目前对3.8支持最稳。我试过3.10,有些依赖包会报兼容性问题。所以,稳妥起见,用3.8。

避坑指南: 我曾经在Jetson上直接用了系统自带的Python 3.6,结果装torchvision时发现版本对不上,折腾了一下午。后来老老实实建了conda环境,十分钟搞定。

4.3 PyTorch for Jetson安装

这是最关键的一步。Jetson上的PyTorch不能直接从官方pip源装,得用NVIDIA专门为Jetson编译的版本。官方提供了预编译的wheel文件。

我建议去NVIDIA的Jetson论坛或者官方GitHub页面找对应的whl文件。比如JetPack 5.1对应的是PyTorch 1.12:

# 安装PyTorch for Jetson(以JetPack 5.1为例)
wget https://developer.download.nvidia.com/compute/redist/jp/v51/pytorch/torch-1.12.0a0+8a1a93a9.nv22.3-cp38-cp38-linux_aarch64.whl

pip install torch-1.12.0a0+8a1a93a9.nv22.3-cp38-cp38-linux_aarch64.whl

安装完成后,验证一下:

python -c "import torch; print(torch.__version__); print(torch.cuda.is_available())"

如果输出True,说明CUDA可用,PyTorch装对了。如果输出False,别慌,检查一下JetPack版本和PyTorch版本是否匹配。

重要: PyTorch版本必须和JetPack版本严格对应。比如JetPack 5.0用PyTorch 1.11,JetPack 5.1用1.12。乱配对会导致CUDA驱动不兼容,跑模型时直接报错。

4.4 torchvision安装

torchvision也得装Jetson专用版。直接从源码编译比较稳妥,因为pip源上的版本可能没针对ARM优化。

# 安装依赖
sudo apt-get install libjpeg-dev zlib1g-dev libpython3-dev libavcodec-dev libavformat-dev libswscale-dev

# 克隆torchvision源码(版本要和PyTorch匹配)
git clone --branch v0.13.0 https://github.com/pytorch/vision.git torchvision
cd torchvision

# 编译安装
export BUILD_VERSION=0.13.0
python setup.py install

编译过程大概要10-15分钟,Jetson的CPU性能有限,耐心等。我一般趁这个时间去泡杯咖啡。

小技巧: 如果编译报错说缺少某个头文件,别急着重装。先看看是不是依赖没装全,sudo apt-get build-dep python3-pil 可以一键安装PIL相关的所有依赖。

4.5 ONNX Runtime安装

ONNX Runtime是模型部署的好帮手。Jetson上建议装ONNX Runtime for NVIDIA GPU的版本,能利用TensorRT加速。

# 安装ONNX Runtime(Jetson专用GPU版本)
pip install onnxruntime-gpu

# 验证安装
python -c "import onnxruntime; print(onnxruntime.get_device())"

如果输出GPU,说明安装成功。如果输出CPU,可能是装成了CPU版本,卸载重装onnxruntime-gpu

避坑指南: 我曾经在Jetson上装了onnxruntime(不带-gpu后缀),结果跑模型时发现推理速度跟CPU差不多,查了半天才发现装错了版本。记住,Jetson一定要用onnxruntime-gpu。

4.6 环境验证总结

所有东西装完后,我习惯跑一个完整的验证脚本,确保环境没问题:

import torch
import torchvision
import onnxruntime

print("PyTorch版本:", torch.__version__)
print("CUDA可用:", torch.cuda.is_available())
print("torchvision版本:", torchvision.__version__)
print("ONNX Runtime设备:", onnxruntime.get_device())

如果全部通过,恭喜你,环境配置完成。接下来就可以开始模型部署了。

组件 版本要求 安装方式
Miniforge 最新版 wget + bash
Python 3.8 conda create
PyTorch 匹配JetPack whl文件
torchvision 匹配PyTorch 源码编译
ONNX Runtime 最新GPU版 pip install

嗯,这一章就到这。环境配置是基础,但基础打牢了,后面才走得顺。下一章咱们聊聊模型转换,把PyTorch模型转成ONNX格式,为部署做准备。