Ubuntu20.04下Ros2-Galactic编译报错:发现多个顶级包
ROS2 Galactic 编译报错与配置文件位置说明
pyproject.toml 和 setup.py 的位置
- 若你是源码编译ROS2:这两个文件存放在本地ROS工作空间的
src目录下,对应每个rqt相关包的独立文件夹中。比如你的工作空间路径为~/ros2_ws,那rqt主包的路径就是~/ros2_ws/src/rqt/,里面的rqt_graph、rqt_publisher等子包各自目录里都有setup.py,部分新包会附带pyproject.toml。 - 若你是通过
apt安装的ROS2:系统中只有编译完成的二进制文件,不会暴露这些源码配置文件。这种情况需要先把rqt相关包的源码克隆到本地工作空间,才能找到并编辑它们。
多Python版本的处理
Ubuntu20.04默认Python3.8,ROS2 Galactic依赖该版本运行,需确保编译时使用正确版本:
- 用
update-alternatives设置默认Python3:sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1 sudo update-alternatives --config python3 - 或者直接在colcon编译时指定解释器:
colcon build --cmake-args -DPYTHON_EXECUTABLE=/usr/bin/python3.8
解决"扁平布局多顶级包"报错的核心步骤
找到对应rqt包的setup.py后,重点修改data_files配置项。要避免把share、resource这类目录直接当作顶级包目录打包,需调整路径规则,仅将具体的资源文件(如ui文件、配置文件)按正确路径添加,不要包含整个目录。
内容的提问来源于stack exchange,提问作者SPDKalyan
相关产品推荐
相关产品推荐

