第一次在Jetson Nano上配置Python环境时,我踩了不少坑。最让人头疼的就是明明按照常规教程操作,却总是遇到各种奇怪的报错。后来才明白,问题出在aarch64架构上。这个架构和我们常用的x86电脑完全不同,导致很多常规方法在这里行不通。
举个例子,在普通电脑上安装Anaconda只需要下载官方安装包,一路next就能搞定。但在Jetson上,官方Anaconda根本装不上。这是因为Anaconda官方没有为aarch64架构提供预编译的二进制包。我试过强行安装,结果要么直接报错,要么装上了也用不了。
另一个常见问题是pip安装的包位置错乱。在x86电脑上,pip install会自动把包装到正确的位置。但在Jetson上,经常会出现包装到了python2.7的目录,却在python3.6里import不到的情况。这种问题特别隐蔽,有时候要排查很久才能发现。
经过多次尝试,我发现Miniforge是最适合Jetson平台的Python发行版。它专门为ARM架构优化,完美支持aarch64。安装过程也很简单:
bash复制wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-aarch64.sh
bash Miniforge3-Linux-aarch64.sh
安装完成后,记得把conda加入环境变量:
bash复制source ~/miniforge3/bin/activate
和Anaconda相比,Miniforge有三大优势:
我实测下来,在Jetson Nano上Miniforge的启动速度比Anaconda快3倍左右,这对于资源有限的开发板来说非常重要。
有了Miniforge之后,创建虚拟环境就很简单了。但我建议加上几个关键参数:
bash复制conda create -n myenv python=3.8 -c conda-forge
这里有几个细节需要注意:
创建好环境后,激活环境时也有个小技巧:
bash复制conda activate myenv
# 而不是 source activate myenv
新版本的conda推荐使用conda activate命令,这样能避免一些潜在的环境变量冲突。
环境创建好后,我建议做以下几个检查:
首先查看python和pip的路径:
bash复制which python
which pip
这两个命令应该都指向你的虚拟环境目录,比如~/miniforge3/envs/myenv/bin/。如果指向系统目录,说明环境没激活成功。
然后测试包的安装位置:
bash复制pip install numpy
python -c "import numpy; print(numpy.__file__)"
输出的路径应该包含你的环境名。如果出现在系统目录,说明pip还是指向了系统默认的pip。
最后检查环境变量:
bash复制echo $PATH
你的环境路径应该出现在系统路径之前。如果不是这样,可能会导致import时优先使用系统安装的包。
在实际使用中,我遇到过几个典型问题:
问题1:conda命令找不到
这是因为环境变量没设置好。解决方法:
bash复制export PATH=~/miniforge3/bin:$PATH
问题2:安装包时下载速度慢
可以配置国内镜像源。先创建~/.condarc文件,然后添加以下内容:
yaml复制channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
问题3:安装某些包时编译失败
这是因为缺少编译工具链。可以安装以下依赖:
bash复制sudo apt-get install build-essential libssl-dev libffi-dev python3-dev
经过多次项目实践,我总结出几个经验:
conda env remove -n envnameconda env export > environment.yml对于AI项目开发,我推荐安装以下基础包:
bash复制conda install numpy pandas matplotlib scikit-learn jupyter
这些包都经过conda-forge团队的优化,在aarch64架构上运行更稳定。