模块未找到错误:找不到名为'rospkg'的模块。

4

我是ROS的新手,

当我在我的脚本文件example.py中导入rospy并运行它时,出现了问题:它显示:

Traceback (most recent call last):
  File "/home/nagarjunv/hk_ws/src/rvo/src/example.py", line 4, in <module>
    import rospy
  File "/opt/ros/melodic/lib/python2.7/dist-packages/rospy/__init__.py", line 49, in <module>
    from .client import spin, myargv, init_node, \
  File "/opt/ros/melodic/lib/python2.7/dist-packages/rospy/client.py", line 52, in <module>
    import roslib
  File "/opt/ros/melodic/lib/python2.7/dist-packages/roslib/__init__.py", line 50, in <module>
    from roslib.launcher import load_manifest  # noqa: F401
  File "/opt/ros/melodic/lib/python2.7/dist-packages/roslib/launcher.py", line 42, in <module>
    import rospkg
ModuleNotFoundError: No module named 'rospkg'

我将下面的内容导入到我的脚本文件中: 第4行是rospy。
#!/usr/bin/env python3

import sys
import rospy

这是我的CMakeLists文件:

cmake_minimum_required(VERSION 3.0.2)
project(rvo)

find_package(catkin REQUIRED COMPONENTS
  rospy
  std_msgs
  message_generation
)

 generate_messages(
   DEPENDENCIES
   std_msgs
 )

catkin_package(
#  INCLUDE_DIRS include
#  LIBRARIES rvo
  CATKIN_DEPENDS rospy std_msgs
#  DEPENDS system_lib
)

include_directories(
# include
  ${catkin_INCLUDE_DIRS}
)

这是我的打包XML文件:
  <buildtool_depend>catkin</buildtool_depend>
  <build_depend>rospy</build_depend>
  <build_depend>std_msgs</build_depend>
  <build_depend>message_generation</build_depend>
  <build_export_depend>rospy</build_export_depend>
  <build_export_depend>std_msgs</build_export_depend>
  <build_export_depend>message_generation</build_export_depend>
  <exec_depend>rospy</exec_depend>
  <exec_depend>std_msgs</exec_depend>
  <exec_depend>message_runtime</exec_depend>

我在 CMakelists 和 Package XML 中都指定了 'rospy' 并导入了它。我也检查过我的 ROS 里有可用的 rospy 包。但是,我不明白为什么运行我的脚本文件时会遇到问题?

rosrun rvo example.py 

我很乐意提供更多关于这个错误的细节。请问有人可以告诉我如何解决这个问题吗?


如果我的回答解决了您的问题,请将其标记为已解决。否则,请提供更多信息。 - rbaleksandar
@Nagarjun Vinukonda,你是怎么解决这个问题的? - roschach
2个回答

7

尝试根据您的ROS发行版使用的Python版本更改shebang(第1行)。

对于Melodic或更早版本:#!/usr/bin/env python2

对于Noetic或更新版本:#!/usr/bin/env python3


2
根据你的ROS版本和rospkg的版本,你可能需要使用Python 2.x或3.x。你的脚本正在调用python3解释器,但是你可以清楚地在错误日志中看到你的安装使用了不同的版本。如果你想在基于Python 2.7的ROS安装中使用Python 3,你需要从头开始构建所有内容,但即使这样成功的机会也很小。以下是一些可能的解决方案:
- 如果你想使用Python 3,请参见此处。根据本文,ROS Noetic仅针对Python 3。 - 如果你不想升级,你需要坚持使用Python 2.7。 - 如果Python的版本不重要,只需调整你的脚本以使用ROS安装所依赖的版本即可。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接