roscore: ModuleNotFoundError: No module named 'std_msgs'

asked 2020-03-08 19:43:36 -0500

rezenders gravatar image

I am trying to run ROS on archlinux and I am geting the following erros:

$ rosdep init
Traceback (most recent call last):
  File "/usr/bin/rosdep", line 3, in <module>
    from rosdep2.main import rosdep_main
  File "/usr/lib/python3.8/site-packages/rosdep2/__init__.py", line 40, in <module>
    from .installers import InstallerContext, Installer, \
  File "/usr/lib/python3.8/site-packages/rosdep2/installers.py", line 36, in <module>
    from rospkg.os_detect import OsDetect
  File "/usr/lib/python3.8/site-packages/rospkg/os_detect.py", line 42, in <module>
    import distro
ModuleNotFoundError: No module named 'distro'

I did source /opt/melodic/setup.bash. A similar error occurs when I run roscore:

$ roscore
Traceback (most recent call last):
  File "/opt/ros/melodic/bin/roscore", line 72, in <module>
    import roslaunch
  File "/opt/ros/melodic/lib/python3.8/site-packages/roslaunch/__init__.py", line 62, in <module>
    from .scriptapi import ROSLaunch
  File "/opt/ros/melodic/lib/python3.8/site-packages/roslaunch/scriptapi.py", line 42, in <module>
    import roslaunch.parent
  File "/opt/ros/melodic/lib/python3.8/site-packages/roslaunch/parent.py", line 54, in <module>
    import roslaunch.server
  File "/opt/ros/melodic/lib/python3.8/site-packages/roslaunch/server.py", line 79, in <module>
    from rosgraph_msgs.msg import Log
  File "/opt/ros/melodic/lib/python3.8/site-packages/rosgraph_msgs/msg/__init__.py", line 2, in <module>
    from ._Log import *
  File "/opt/ros/melodic/lib/python3.8/site-packages/rosgraph_msgs/msg/_Log.py", line 8, in <module>
    import std_msgs.msg
ModuleNotFoundError: No module named 'std_msgs'

I am guessing this error is somehow related to python, it seems to me that it is trying to use python3 deps. When I install ROS from the AUR packages does it install ROS for python2? Maybe it does not install the dependencies required for python3? Is it possible to force it to use python2?

edit retag flag offensive close merge delete