You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jetson Nano上Python 3.11无法导入CUDA版OpenCV问题

解决Jetson Nano上Python 3.11无法导入编译版CUDA OpenCV的问题

问题背景

Jetson Nano默认搭载Jetpack 4.6.4与Python 3.6.9,自行编译安装Python 3.11后,通过源码编译带CUDA优化的OpenCV,make install显示文件已部署到/usr/lib/python3.11/site-packages/cv2目录,但Python 3.11执行import cv2时提示ModuleNotFoundError: No module named 'cv2'。

CMake配置确认Python 3.11的路径、numpy版本均正确,jtop显示OpenCV已安装,但导入失败。


解决方案步骤

1. 检查Python的site-packages路径优先级

执行以下命令查看Python 3.11的模块搜索路径:

python3.11 -c "import sys; print('\n'.join(sys.path))"

确认/usr/lib/python3.11/site-packages是否在输出列表中:

  • 若不在,临时添加路径测试:
    export PYTHONPATH=/usr/lib/python3.11/site-packages:$PYTHONPATH
    
    重新尝试import cv2,若成功,可将该命令添加到~/.bashrc实现永久生效。
  • 也可在/usr/lib/python3.11/site-packages目录下创建opencv.pth文件,写入/usr/lib/python3.11/site-packages/cv2。

2. 检查OpenCV库文件权限

查看核心库文件的权限设置:

ls -l /usr/lib/python3.11/site-packages/cv2/python-3.11/cv2.cpython-311-aarch64-linux-gnu.so

确保权限为全局可读(例如-rw-r--r--),若权限不足,执行:

sudo chmod 644 /usr/lib/python3.11/site-packages/cv2/python-3.11/cv2.cpython-311-aarch64-linux-gnu.so

3. 验证库文件依赖完整性

使用ldd检查OpenCV库的依赖是否存在缺失:

ldd /usr/lib/python3.11/site-packages/cv2/python-3.11/cv2.cpython-311-aarch64-linux-gnu.so

若输出中出现not found的依赖项,安装对应的库文件(需匹配Jetpack 4.6.4的CUDA 10.2、cuDNN 8.2.1版本)。

4. 创建库文件的符号链接

编译后的OpenCV核心库位于cv2/python-3.11子目录,Python默认会从cv2根目录查找库文件,创建符号链接:

sudo ln -s /usr/lib/python3.11/site-packages/cv2/python-3.11/cv2.cpython-311-aarch64-linux-gnu.so /usr/lib/python3.11/site-packages/cv2/cv2.so

完成后重新尝试导入cv2。

5. 重新编译OpenCV(若上述步骤无效)

修改CMake编译参数,明确指定Python 3的包路径:

cmake \
  -D CMAKE_BUILD_TYPE=RELEASE \
  -D CMAKE_INSTALL_PREFIX=/usr/local \
  -D WITH_CUDA=ON \
  -D CUDA_ARCH_BIN=5.3 \
  -D CUDA_ARCH_PTX="" \
  -D WITH_CUDNN=ON \
  -D OPENCV_DNN_CUDA=ON \
  -D WITH_TBB=ON \
  -D BUILD_opencv_python3=ON \
  -D PYTHON3_EXECUTABLE=/usr/bin/python3.11 \
  -D PYTHON3_INCLUDE_DIR=/usr/include/python3.11 \
  -D PYTHON3_LIBRARY=/usr/lib/aarch64-linux-gnu/libpython3.11.so \
  -D PYTHON3_PACKAGES_PATH=/usr/lib/python3.11/site-packages \
  -D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/local/lib/python3.11/dist-packages/numpy/core/include \
  ..

然后重新执行make -j4和sudo make install。


内容的提问来源于stack exchange,提问作者user2410689

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 19:33:13