仅使用Python3进行ROS旋律安装,而不会扰乱系统库



过程和问题描述:

我在那里遵循安装指南:
http://wiki.ros.org/melodic/Installation/Ubuntu

但是:

  1. $ sudo apt-get install ros-melodic-desktop-full不工作:

    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    Some packages could not be installed. This may mean that you have
    requested an impossible situation or if you are using the unstable
    distribution that some required packages have not yet been created
    or been moved out of Incoming.
    The following information may help to resolve the situation:
    The following packages have unmet dependencies:
    ros-melodic-desktop-full : Depends: ros-melodic-perception but it is not going to be installed    
    E: Unable to correct problems, you have held broken packages.    
    

    ->问题1。

  2. $ sudo apt-get install ros-melodic-desktop-full似乎可以工作,但它需要安装一大堆软件包(602MB)——这是我所期望的。当详细查看这些包时,我可以看到:

    • 超过190个ros东西包:OK

    • 几个新库:OK

    • 超过40个python-<packages>(绝对是Python 2包):->问题2.1

    • 超过80个libboost-<something-system-libraries>:->问题2.2

相关问题:

问题1:

你知道为什么吗?

问题2.1:

如何强制使用这些包的Python 3版本?

问题2.2:

出于其他目的,我从源代码构建boost(在Linux上从源代码创建boost)
因此,我担心如果我安装带有所有这些依赖项的ros,ros附带的boost系统库(都是boost版本1.65)会干扰我个性化安装的boost库(版本1.68,尤其是当我想编译其他软件时(我喜欢只有一个版本的lib,即最新的1.68)。
有没有办法告诉ros使用这些已经安装的库(基本上在/usr/local/中)?

一般信息:

我使用的是Ubuntu 18.04:4.15.0-43-generic x86_64 GNU/LinuxPython 3版本为:3.6.7

为了让ROS系统工作,它需要最低特定版本的依赖关系。

您不能在安装中使用python 3,因为所有工具都是用python 2.7+制作的。但您可以通过将ROS_PYTHON_VERSION更改为3来指定运行或编译包时使用的python版本。

我认为您可以使用This Answer将编译后的源代码转换为.deb文件并安装它,以防止apt干扰您的提升库

如果您使用Anaconda,请尝试此

conda create -n ros python=3.7

conda activate ros

pip install rospy rospkg

这对我很有效。只需以类似的方式安装任何其他软件包pip安装软件包名称

最新更新