尝试检查依赖项时 rosdep 出现问题

Posted

技术标签:

【中文标题】尝试检查依赖项时 rosdep 出现问题【英文标题】:Problem with rosdep when trying to check for dependencies 【发布时间】:2021-06-29 13:31:15 【问题描述】:

我正在尝试运行以下 rosdep 命令来检查我的 ROS2 包中是否缺少依赖项:

rosdep install -i --from-path src --rosdistro galactic -y

但是,当我尝试在终端中运行这行代码时,出现以下错误:

Traceback (most recent call last):
  File "/usr/bin/rosdep", line 33, in <module>
    sys.exit(load_entry_point('rosdep==0.21.0', 'console_scripts', 'rosdep')())
  File "/usr/bin/rosdep", line 25, in importlib_load_entry_point
    return next(matches).load()
  File "/usr/lib/python3.8/importlib/metadata.py", line 77, in load
    module = import_module(match.group('module'))
  File "/usr/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 961, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 783, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/usr/lib/python3/dist-packages/rosdep2/__init__.py", line 45, in <module>
    from .lookup import RosdepDefinition, RosdepView, RosdepLookup, \
  File "/usr/lib/python3/dist-packages/rosdep2/lookup.py", line 44, in <module>
    from .sources_list import SourcesListLoader
  File "/usr/lib/python3/dist-packages/rosdep2/sources_list.py", line 50, in <module>
    from .gbpdistro_support import get_gbprepo_as_rosdep_data, download_gbpdistro_as_rosdep_data
  File "/usr/lib/python3/dist-packages/rosdep2/gbpdistro_support.py", line 20, in <module>
    from .platforms.redhat import YUM_INSTALLER
  File "/usr/lib/python3/dist-packages/rosdep2/platforms/redhat.py", line 34, in <module>
    from rospkg.os_detect import (
ImportError: cannot import name 'OS_ALMALINUX' from 'rospkg.os_detect' (/usr/local/lib/python3.8/dist-packages/rospkg-1.2.8-py3.8.egg/rospkg/os_detect.py)

我试图在论坛上搜索,看看是否有人在导入“OS_ALMALINUX”时出错,但我找不到任何类似的案例。 有谁知道我该如何解决这个问题?

谢谢

【问题讨论】:

可能您没有受支持的 Linux 版本。你有什么 Linux? 我使用的是 ubuntu 20.04。但是 ubuntu 是 ros2 支持的。 哦,好吧,只是为了确保,您确实在运行 coammand 之前确实为您的环境提供了源,如此处所述docs.ros.org/en/foxy/Tutorials/… 是的,它已经在我的 bashrc 文件中了。因此,当我打开一个新终端时,环境会自动获取。 奇怪,抱歉只能按照所有教程步骤操作,直到 rosdep 没有失败。那里可能缺少某些东西。 【参考方案1】:

对我来说,解决方案是从pip (pip uninstall rospkg) 中删除rospkg,并改用从apt 安装的rospkg (sudo apt install python3-rospkg)。好像是通过pip安装的版本不对,或者pipapt的版本有冲突。

【讨论】:

以上是关于尝试检查依赖项时 rosdep 出现问题的主要内容,如果未能解决你的问题,请参考以下文章

尝试在 CircleCI 上获取 golang 私有依赖项时的问题

在安装 Web3js 依赖项时,它显示 node-gyp 问题

尝试安装项目依赖项时运行 npm i(退出代码 1)时发生错误

Composer 在更新依赖项时挂起

在 Gitlab 管道中安装依赖项时出错

当安装包而不是单个学说依赖项时,如何更新 orm-pack 的单个包?