Der Kerngrund hinter No module named 'roslaunch'

Problem

Sie führen ein ROS-Paket aus oder starten es, aber Sie sehen eine Fehlermeldung wie

roslaunch_error.txt
No module named 'roslaunch'

Grund

Der Kerngrund dafür ist, dass roslaunch aus ROS 1 stammt, während Sie ROS 2 verwenden.

Daher müssen Sie ROS 1- und ROS 2-Pakete auf irgendeine Weise mischen.

Der nächste Schritt für Sie wäre, herauszufinden, welches Paket roslaunch verwendet, und dann ein ROS 2-Äquivalent für dieses Paket zu finden. /home/uli/.local/lib/python3.12/site-packages/xacro/init.py

search_roslaunch.sh
ag -i roslaunch

Manchmal passiert dies, weil Sie Python-Pakete irgendwo installiert haben (außerhalb des Haupt-ROS2-Verzeichnisses, z.B. mit pip) und diese ROS1-Pakete sich noch in Ihrem PYTHONPATH befinden.

Falls Sie ros2 launch verwenden, siehe unseren Beitrag ROS2-Hack zum Aktivieren von DEBUG-Logging während ‘ros2 launch’ für einen einfachen Hack, um den Stacktrace zu sehen, von wo roslaunch importiert wird.

In meinem Fall installierte ich eine Kopie von xacro nach ~/.local/lib/python3.12/site-packages/xacro/__init__.py.

Daher musste ich xacro deinstallieren mit

pip_uninstall_xacro.sh
pip uninstall xacro

und dann die ROS2-Version von xacro installieren mit

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

Check out similar posts by category: ROS