尝试检查依赖项时 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
安装的版本不对,或者pip
和apt
的版本有冲突。
【讨论】:
以上是关于尝试检查依赖项时 rosdep 出现问题的主要内容,如果未能解决你的问题,请参考以下文章
尝试在 CircleCI 上获取 golang 私有依赖项时的问题
在安装 Web3js 依赖项时,它显示 node-gyp 问题