Jetson Nano到手后别急着写代码!先搞定这3个开发环境配置(Python/OpenCV/常用库) Jetson Nano开发环境配置实战从开箱到高效AI开发刚拿到Jetson Nano的开发板很多开发者会迫不及待地想要开始编写和运行AI模型代码。然而一个稳定、高效的开发环境是后续所有工作的基础。本文将带你系统性地配置Jetson Nano的开发环境确保你的AI项目能够顺利开展。1. 系统基础配置优化在开始安装各种开发库之前我们需要确保系统本身处于最佳状态。Jetson Nano默认的系统配置可能并不完全适合开发需求特别是对于国内用户而言。1.1 更换软件源提升安装速度Jetson Nano基于Ubuntu 18.04 LTS(Bionic Beaver)默认的软件源服务器在国外更新和安装软件时速度较慢。我们可以将其替换为国内镜像源sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo nano /etc/apt/sources.list将文件内容替换为清华大学的镜像源deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main multiverse restricted universe deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main multiverse restricted universe deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main multiverse restricted universe deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main multiverse restricted universe更新软件包列表并升级现有软件sudo apt update sudo apt full-upgrade -y注意执行完整升级可能需要较长时间建议在稳定的网络环境下进行1.2 系统性能调优Jetson Nano的默认电源模式是5W这会限制CPU和GPU的性能。我们可以切换到10W模式以获得更好的性能sudo nvpmodel -m 0 sudo jetson_clocks验证当前模式sudo nvpmodel -q此外建议禁用不必要的服务和启动项来释放系统资源sudo systemctl disable bluetooth.service sudo systemctl disable apt-daily-upgrade.timer2. Python开发环境配置Python是AI开发的主要语言Jetson Nano默认安装了Python 3.6我们需要为其配置完整的科学计算环境。2.1 管理Python环境虽然可以直接使用系统Python但为了项目隔离和版本管理建议使用虚拟环境sudo apt install python3-pip python3-venv python3 -m venv ~/venv/nano source ~/venv/nano/bin/activate2.2 科学计算基础库安装Jetson Nano的ARM架构意味着我们不能直接使用pip安装所有Python包有些需要通过apt-get安装系统版本sudo apt install -y \ python3-numpy \ python3-scipy \ python3-pandas \ python3-matplotlib \ python3-sklearn对于其他可以通过pip安装的包我们需要使用专门为ARM架构编译的版本pip install --upgrade pip pip install cython wheel提示在Jetson Nano上编译安装Python包可能非常耗时建议优先寻找预编译的ARM版本2.3 Jupyter Notebook配置对于交互式开发和演示Jupyter Notebook是非常有用的工具pip install notebook配置Jupyter以允许远程访问jupyter notebook --generate-config echo c.NotebookApp.ip 0.0.0.0 ~/.jupyter/jupyter_notebook_config.py echo c.NotebookApp.open_browser False ~/.jupyter/jupyter_notebook_config.py启动Jupyter Notebookjupyter notebook --port8888 --no-browser 3. OpenCV深度配置与验证Jetson Nano系统镜像已经预装了OpenCV但我们需要验证其功能并确保它能够充分利用硬件加速。3.1 验证OpenCV安装检查已安装的OpenCV版本opencv_version测试OpenCV是否能够正常使用CUDA加速import cv2 print(cv2.cuda.getCudaEnabledDeviceCount())3.2 构建自定义OpenCV如果需要特定版本的OpenCV或者想要启用更多功能模块可以从源码构建sudo apt install -y \ build-essential \ cmake \ git \ libgtk2.0-dev \ pkg-config \ libavcodec-dev \ libavformat-dev \ libswscale-dev下载OpenCV源码并配置构建mkdir -p ~/opencv_build cd ~/opencv_build git clone https://github.com/opencv/opencv.git git clone https://github.com/opencv/opencv_contrib.git mkdir build cd build cmake -D CMAKE_BUILD_TYPERELEASE \ -D CMAKE_INSTALL_PREFIX/usr/local \ -D WITH_CUDAON \ -D CUDA_ARCH_BIN5.3 \ -D CUDA_ARCH_PTX \ -D WITH_CUBLASON \ -D ENABLE_FAST_MATHON \ -D CUDA_FAST_MATHON \ -D OPENCV_EXTRA_MODULES_PATH../../opencv_contrib/modules \ -D WITH_GSTREAMERON \ -D WITH_LIBV4LON \ -D BUILD_opencv_python3ON \ -D BUILD_TESTSOFF \ -D BUILD_PERF_TESTSOFF \ -D BUILD_EXAMPLESOFF \ ../opencv make -j$(nproc) sudo make install3.3 OpenCV性能测试使用Python脚本测试OpenCV的性能import cv2 import time img cv2.imread(test.jpg, cv2.IMREAD_COLOR) start time.time() gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) blur cv2.GaussianBlur(gray, (7, 7), 1.5) edges cv2.Canny(blur, 0, 30) print(fProcessing time: {time.time()-start:.3f} seconds)4. 深度学习框架安装与配置Jetson Nano的强大之处在于能够运行复杂的深度学习模型我们需要安装主流深度学习框架。4.1 TensorFlow安装NVIDIA为Jetson系列提供了优化版的TensorFlowsudo apt install -y libhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev zip libjpeg8-dev pip install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v46 tensorflow验证TensorFlow是否能够使用GPUimport tensorflow as tf print(tf.config.list_physical_devices(GPU))4.2 PyTorch安装PyTorch是另一个广泛使用的深度学习框架wget https://nvidia.box.com/shared/static/p57jwntv436lfrd78inwl7iml6p13fzh.whl -O torch-1.10.0-cp36-cp36m-linux_aarch64.whl pip install torch-1.10.0-cp36-cp36m-linux_aarch64.whl安装TorchVisionsudo apt install -y libjpeg-dev zlib1g-dev libpython3-dev libavcodec-dev libavformat-dev libswscale-dev pip install --no-deps torchvision4.3 ONNX Runtime安装ONNX Runtime用于高效运行跨框架的模型pip install onnxruntime-gpu验证ONNX Runtime是否使用GPUimport onnxruntime as ort print(ort.get_device())5. 实用工具与性能监控完善的开发环境还需要各种辅助工具来提升效率。5.1 系统监控工具安装并配置实用的系统监控工具sudo apt install -y htop tmux pip install gpustat创建系统监控面板tmux new-session -d -s monitor tmux send-keys -t monitor watch -n 1 echo -e \CPU:\; cat /proc/cpuinfo | grep \^[c]pu MHz\; echo -e \\nMemory:\; free -h; echo -e \\nGPU:\; sudo tegrastats | grep -E \RAM|GR3D\ Enter5.2 开发工具安装安装常用开发工具sudo apt install -y \ git \ curl \ wget \ zip \ unzip \ rsync \ vim \ net-tools配置Gitgit config --global user.name Your Name git config --global user.email your.emailexample.com git config --global core.editor vim5.3 远程开发配置对于无头(Headless)设置配置SSH远程访问sudo systemctl enable ssh sudo systemctl start ssh配置VS Code远程开发在本地VS Code安装Remote - SSH扩展添加Jetson Nano的连接配置通过SSH连接到Jetson Nano进行远程开发6. 环境验证与测试完成所有配置后我们需要验证环境是否正常工作。6.1 综合性能测试使用Python脚本测试整体性能import numpy as np import cv2 import tensorflow as tf from time import time # 测试NumPy性能 start time() a np.random.rand(1000, 1000) b np.random.rand(1000, 1000) np.dot(a, b) print(fNumPy matrix multiplication: {time()-start:.3f}s) # 测试OpenCV性能 img cv2.imread(test.jpg) start time() for _ in range(100): gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) blur cv2.GaussianBlur(gray, (5,5), 0) print(fOpenCV image processing: {(time()-start)/100:.3f}s per operation) # 测试TensorFlow性能 model tf.keras.applications.MobileNetV2() start time() pred model.predict(np.random.rand(1, 224, 224, 3)) print(fTensorFlow inference: {time()-start:.3f}s)6.2 常见问题排查遇到环境问题时可以检查以下方面CUDA不可用nvcc --version nvidia-smi内存不足free -h sudo apt install zram-config存储空间不足df -h sudo apt clean包安装冲突pip check sudo apt --fix-broken install经过以上系统化的配置你的Jetson Nano已经准备好应对各种AI和计算机视觉项目的开发需求了。在实际项目中我发现合理管理Python虚拟环境和定期清理不需要的包能够显著提高系统稳定性。对于资源密集型的任务建议在代码中加入适当的内存和显存管理逻辑避免系统因资源耗尽而崩溃。