Der Kerngrund hinter No module named 'roslaunch'
Problem
Sie führen ein ROS-Paket aus oder starten es, aber Sie sehen eine Fehlermeldung wie
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
ag -i roslaunchManchmal 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 xacround dann die ROS2-Version von xacro installieren mit
sudo apt -y install ros-jazzy-xacro