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

虚拟环境下ROS2 colcon build因Python依赖em报错ModuleNotFoundError

解决ROS2编译时找不到'em'模块的问题

问题根源

从报错日志可以看到,colcon构建时调用的是系统的Python 3.12(/opt/homebrew/Frameworks/Python.framework/Versions/3.12/bin/python3.12),但你安装的empy依赖在虚拟环境的Python 3.11路径下(/Users/mryall/src/mawson/ros2-iron/iron_venv/lib/python3.11/site-packages),版本不匹配导致模块找不到。

解决方案

  • 确认虚拟环境激活状态
    激活虚拟环境后,执行以下命令验证Python路径是否正确:

    which python
    

    输出需指向虚拟环境内的Python 3.11,比如/Users/mryall/src/mawson/ros2-iron/iron_venv/bin/python。

  • 强制colcon使用虚拟环境的Python
    构建时通过cmake-args指定Python解释器路径:

    colcon build --cmake-clean-cache --cmake-args -DPYTHON_EXECUTABLE=$(which python)
    
  • 设置PYTHONPATH环境变量
    如果上述方法无效,直接将虚拟环境的site-packages路径添加到PYTHONPATH:

    export PYTHONPATH=/Users/mryall/src/mawson/ros2-iron/iron_venv/lib/python3.11/site-packages:$PYTHONPATH
    colcon build --cmake-clean-cache
    
  • 检查ROS2环境加载顺序
    确保先激活虚拟环境,再加载ROS2的setup脚本:

    source /Users/mryall/src/mawson/ros2-iron/iron_venv/bin/activate
    source /Users/mryall/src/mawson/ros2-iron-build/install/setup.bash
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 16:12:55