No module named 'roslaunch' 背后的核心原因

问题

你正在运行或启动某个 ROS 包,但看到如下错误消息

roslaunch_error.txt
No module named 'roslaunch'

原因

其核心原因是 roslaunch 来自 ROS 1,而你正在使用 ROS 2

因此,你必定以某种方式混合了 ROS 1 和 ROS 2 包。

你的下一步是找出哪个包使用了 roslaunch,然后为该包找到 ROS 2 等价物。 /home/uli/.local/lib/python3.12/site-packages/xacro/init.py

search_roslaunch.sh
ag -i roslaunch

有时这种情况发生是因为你在某处安装了 Python 包(在主 ROS2 目录之外,例如使用 pip),而这些 ROS1 包仍在你的 PYTHONPATH 中。

如果你使用 ros2 launch,请参阅我们的文章在 ‘ros2 launch’ 期间启用 DEBUG 日志记录的 ROS2 技巧,了解一个简单的技巧来查看 roslaunch 从哪里被导入的堆栈跟踪。

在我的情况下,我安装了一份 xacro 副本到 ~/.local/lib/python3.12/site-packages/xacro/__init__.py

因此,我需要使用以下命令卸载 xacro

pip_uninstall_xacro.sh
pip uninstall xacro

然后使用以下命令安装 ROS2 版本的 xacro

install_ros_xacro.sh
sudo apt -y install ros-jazzy-xacro

Check out similar posts by category: ROS