ros noetic 中仍不支持许多软件包,因此我尝试在 ubuntu 20.04 中从源代码构建 melodic。虽然按照以下说明这里,我被困在这个命令中rosdep install --from-paths src --ignore-src --rosdistro melodic -y
我得到的错误是:-
ERROR: the following packages/stacks could not have their rosdep keys resolved to system dependencies: laser_geometry: No definition of [python-numpy] for OS version [focal] genpy: No definition of [python-yaml] for OS version [focal] gencpp: No definition of [python-setuptools] for OS version [focal] python_orocos_kdl: No definition of [python-sip] for OS version [focal]
我知道这是因为 ubuntu 20.04 没有 python。所以我尝试这样做
alias python=python3
在我的 bashrc 中sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10
但我仍然收到这些错误。如何解决这些问题?即使我安装了sudo apt-get install
所有这些包,仍然会出现这些错误。
答案1
回答你的问题...
我开始按照@HimnashuTanwar 建议的路径,从源代码构建旋律,但最终得出结论,在 20.04 中完整的 ros 旋律安装在不可行。
几点说明:
- 在 rosdep 命令中添加 -r 会立即暴露与 Python2 相关的所有
依赖项,大多数此类依赖项都可以满足
using pip install -U [package]
。 - 一个值得注意的例外是 pyqt5,它又依赖于 sip。起初,我尝试按照以下说明构建这两个的源代码:https://www.riverbankcomputing.com/static/Docs/PyQt5/installation.html#building-and-installing-from-source,而是选择了这个解决方案:如何在 Ubuntu 20.04 上获取适用于 Python2 的 PyQt5
- 导致我放弃构建的原因是
melodic 的 tf2 对 Boost 早期版本的严重依赖。事实证明 20.04 在 libboost1.71 上运行,其中 boost-signals 已被弃用和删除,这破坏了 tf2 的构建——这个问题当然在 Noetic 中得到了解决。
所以最后,最好还是坚持使用受支持的版本对:18.04 上的 melodic 或 20.04+ 上的 noetic,按照(http://wiki.ros.org/Distributions)
答案2
尝试这个:
rosdep install --from-paths src --ignore-src --rosdistro melodic --os=ubuntu:bionic -y
除此之外,melodic 使用的是 python2,这不是重点。因此,请安装 python2、pip 和其他依赖项。之后,update-alternatives
安装 python2 和 pip2。
我还没有尝试过;您可以对进一步的问题进行评论。