WSL2中Carla-ROS-Bridge执行colcon build时出现'em'模块找不到错误
解决WSL2中colcon build carla-ros-bridge时
ModuleNotFoundError: No module named 'em'的问题 问题根源
从报错日志可以看出,colcon构建时实际调用的是miniconda的Python 3.10(路径/home/jakob/miniconda3/bin/python3),但你安装的empy包位于Python 3.8的/home/jakob/.local/lib/python3.8/site-packages目录下,两个Python环境不匹配,导致3.10无法找到empy模块。
修复方案
给miniconda的Python 3.10安装empy
直接使用miniconda对应版本的pip安装:/home/jakob/miniconda3/bin/pip install empy若你使用了conda虚拟环境,可先激活环境再安装:
conda activate 你的环境名称 pip install empy强制colcon使用Python 3.8构建
如果你不想给conda环境安装依赖,可指定colcon使用系统的Python 3.8执行构建:colcon build --cmake-args -DPYTHON_EXECUTABLE=/usr/bin/python3.8或者临时设置环境变量后再构建:
export PYTHON_EXECUTABLE=/usr/bin/python3.8 colcon build调整Python环境优先级(可选)
若希望默认使用系统Python 3.8而非conda版本,可临时调整PATH顺序:export PATH=/usr/bin:$PATH如需永久生效,将上述命令添加到
~/.bashrc或~/.zshrc文件中,重启终端即可。
内容的提问来源于stack exchange,提问作者Jakob-Go
相关产品推荐
相关产品推荐

