4、Python环境配置:Miniforge安装、创建虚拟环境、pip换源、常用库安装
好,咱们继续往下走。上一章我们把 Jetson 的系统刷好了,也连上了网络。现在要干一件非常核心的事——搭 Python 环境。
你可能会想:「Python 不是自带了吗?为啥还要折腾?」
嗯,这里要注意。Jetson 是 ARM 架构,跟咱们的 x86 电脑不一样。直接用系统自带的 Python,版本可能不对,包也可能装不上。我刚开始玩 Jetson 的时候,就因为这个踩过坑——装 OpenCV 装了一整天,最后发现是 Python 环境的问题。
所以,咱们老老实实从 Miniforge 开始。
4.1 为什么选 Miniforge?
你可能听说过 Anaconda、Miniconda。但在 Jetson 上,我推荐 Miniforge。
原因很简单:
- Anaconda 官方不支持 ARM64 架构
- Miniconda 虽然能用,但源在国外,下载慢
- Miniforge 原生支持 ARM64,而且用的是 conda-forge 频道,包很全
说白了,Miniforge 就是为 ARM 设备量身定做的。我个人的习惯是,所有 Jetson 项目统一用 Miniforge,省心。
4.2 安装 Miniforge
先 SSH 连上你的 Jetson,或者直接接显示器操作也行。
第一步,下载安装脚本:
wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-aarch64.sh
如果下载慢,可以用我备用的国内镜像地址(记得替换版本号):
wget https://mirrors.tuna.tsinghua.edu.cn/github-release/conda-forge/miniforge/LatestRelease/Miniforge3-Linux-aarch64.sh
第二步,运行安装:
bash Miniforge3-Linux-aarch64.sh
安装过程中会问你要不要初始化 conda,选 yes。然后重启终端,或者执行:
source ~/.bashrc
验证一下:
conda --version
看到版本号,就说明装好了。
4.3 创建虚拟环境
为什么要用虚拟环境?
你想想看,一个项目用 PyTorch 1.10,另一个用 2.0,如果全装在一起,迟早会冲突。我去年做一个多模型融合的项目,就是因为环境乱了,排查了整整两天。
所以,每个项目建一个独立环境,这是铁律。
创建 YOLO 专用的环境:
conda create -n yolo python=3.8
这里我选 Python 3.8,因为 YOLOv5 和 YOLOv8 对 3.8 支持最好。当然,你用 3.9 或 3.10 也行,但 3.8 最稳。
激活环境:
conda activate yolo
看到命令行前面多了个 (yolo),就说明成功了。
4.4 pip 换源
默认的 pip 源在国外,下载速度嘛……你懂的。我曾经等一个包等了半小时,最后超时了。
换成清华源,速度能快 10 倍以上。
临时换源:
pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
永久换源(推荐):
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
验证一下:
pip config list
看到 index-url 那一行,就说明换成功了。
4.5 安装常用库
好,环境有了,源也换了。现在装几个最常用的库。
先装 NumPy:
pip install numpy
再装 OpenCV。这里要注意,Jetson 上装 OpenCV 有两种方式:
- 用 pip 装 opencv-python(简单,但可能不带 CUDA 加速)
- 用 Jetson 官方提供的预编译包(带 CUDA,性能更好)
我建议先用 pip 装,够用:
pip install opencv-python
如果你需要 CUDA 加速的 OpenCV,后面我会专门讲怎么编译。
然后装 Matplotlib:
pip install matplotlib
验证一下:
python -c "import numpy; print(numpy.__version__)"
python -c "import cv2; print(cv2.__version__)"
python -c "import matplotlib; print(matplotlib.__version__)"
三个都能正常输出版本号,就说明装好了。
4.6 避坑指南
最后,分享几个我踩过的坑:
- 权限问题: 不要用 sudo pip install,会破坏系统 Python。如果遇到权限错误,加 --user 参数。
- 内存不足: Jetson 内存有限,装大包时可能会卡死。建议用 -c conda-forge 安装,conda 会处理依赖。
- 版本冲突: 如果装某个包时报依赖冲突,别硬装。先 conda list 看看已安装的版本,再决定升级还是降级。
我曾经在一个项目里,因为 OpenCV 和 PyTorch 的版本不兼容,浪费了整整一个下午。后来学乖了,每次装新包前,先查一下兼容性。
好了,这一章就到这里。环境搭好了,下一章咱们就开始跑第一个 YOLO 检测程序。