笔者环境:
ubuntu:20.04
ros:noetic(默认预装python3.8)
遇到问题:
CMake Error at /opt/ros/noetic/share/catkin/cmake/empy.cmake:30 (message): Unable to find either executable 'empy' or Python module 'em'... try installing the package 'python3-empy'
错误信息非常明确:catkin 在生成 ROS 消息 / 服务代码时需要用 Python 的 empy 模板引擎,而你的环境里既找不到可执行文件 empy,也找不到模块 em。
只要把 empy 装到 当前被 cmake 调用的那个 Python3 里即可
经过搜索 发现有可能是由于ROS的python版本和Anaconda的python版本重合导致的编译失败(python版本的兼容性问题)
解决方法:
仍然报错——cmake 调的是 Anaconda/Miniconda 的 Python
现象:which python3 输出类似 /home/xxx/anaconda3/bin/python3,而 python3 -c "import em" 报 No module named 'em'。
原因:你把 ROS 包装在系统 Python 里,但 cmake 优先找到 conda 的 Python,conda 环境里并没有 empy。
对策 A:临时把系统 Python 提到最前面(只影响当前终端)
打开/.bash,命令行输入:
gedit ~/.bashrc
然后输入:
export PATH=/usr/bin:$PATH # 让 /usr/bin/python3 排在前面
# 现在找到的 python3 就是 /usr/bin/python3
保存退出文本文件后 命令行输入
cd ~/catkin_ws
catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3
编译成功
2756

被折叠的 条评论
为什么被折叠?



