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

Jetson Nano终端Python3可用CUDA,脚本文件中不可用的解决求助

解决Jetson Nano脚本执行时CUDA不可用的问题

1. 对齐交互终端与脚本的环境变量

交互终端能正常识别CUDA,说明环境变量配置正确,但脚本执行时可能未继承这些变量:

  • 导出交互终端的环境变量:
    python3 -c "import os; print('\n'.join(f'{k}={v}' for k,v in os.environ.items()))" > env_interactive.txt
    
  • 在脚本开头临时添加导出代码,执行脚本得到脚本环境的变量:
    # 临时插入file.py最顶部
    import os
    with open('env_script.txt', 'w') as f:
        f.write('\n'.join(f'{k}={v}' for k,v in os.environ.items()))
    
  • 对比两个文件,重点补全CUDA_HOME、PATH、LD_LIBRARY_PATH等CUDA相关变量,仅补充缺失部分,不要覆盖原有值:
    # 示例:补全LD_LIBRARY_PATH的CUDA路径
    import os
    cuda_lib_path = "/usr/local/cuda/lib64"
    if cuda_lib_path not in os.environ.get('LD_LIBRARY_PATH', ''):
        os.environ['LD_LIBRARY_PATH'] = f"{cuda_lib_path}:{os.environ.get('LD_LIBRARY_PATH', '')}"
    

2. 确保脚本使用与交互终端相同的Python解释器

Jetson Nano的Torch绑定系统默认Python,若脚本用了其他解释器(如虚拟环境)会导致CUDA失效:

  • 交互终端执行以下命令获取正确解释器路径:
    which python3
    python3 -c "import sys; print(sys.executable)"
    
  • 用绝对路径调用脚本,比如:
    /usr/bin/python3 file.py
    

3. 检查CUDA设备权限

脚本执行时可能没有访问GPU设备的权限:

  • 先尝试用sudo执行脚本验证:
    sudo python3 file.py
    
  • 若sudo后正常,给当前用户添加GPU设备权限:
    sudo usermod -aG video $USER
    # 重启系统后生效
    

4. 避免错误设置CUDA_VISIBLE_DEVICES

不要直接覆盖CUDA_VISIBLE_DEVICES,这会破坏Jetson默认的设备映射,导致其他功能失效。如需指定设备,应基于原有变量追加:

import os
current_devices = os.environ.get('CUDA_VISIBLE_DEVICES', '')
os.environ['CUDA_VISIBLE_DEVICES'] = f"0,{current_devices}" if current_devices else "0"

内容的提问来源于stack exchange,提问作者R. Boudewijn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 05:55:20