关于在Ubuntu20.04(ROS1 noetic)中使用catkin_make编译时发生的与pyhton版本不兼容的问题解决办法

发布时间:2024年01月23日

????????今天在另外一台电脑上操作复现【ROS建模:一起从零手写URDF模型】这个博客时,发生了一些问题,特此记录下来

【ROS建模:一起从零手写URDF模型】链接:
https://blog.csdn.net/qq_54900679/article/details/135726348?spm=1001.2014.3001.5502

在操作至这里时:

发生了报错,内容如下:

解决方案:

确保你已经安装了 'catkin_pkg',可以在终端中执行:

pip show catkin_pkg

????????从输出的信息来看,已经在 Anaconda 环境中安装了 catkin_pkg,版本是 1.0.0。这个版本应该是相对较新的。问题可能不在于 catkin_pkg 本身,而是在于与 Python 3.10 版本的兼容性,或者是与其他 ROS 组件的集成方式。

????????考虑到目前这个电脑上使用的是 Anaconda 环境和 Python 3.10,这里建议:

  1. 检查 catkin_pkg 和 Python 3.10 的兼容性:

    • 虽然 catkin_pkg 已安装,但可能存在与 Python 3.10 的兼容性问题。尝试查找 catkin_pkg 的官方文档或相关论坛,看看是否有关于 Python 3.10 兼容性的信息。
  2. 使用系统 Python:

    • ROS 更常与系统自带的 Python 版本(通常是 Python 2.7 或 Python 3.6/3.8)兼容。如果可能,尝试使用系统自带的 Python 版本而不是 Anaconda 的 Python 版本。可以通过修改环境变量或创建一个新的虚拟环境来实现。
  3. 检查其他依赖:

    • 根据错误信息,可能还需要检查其他依赖(如 docutils, pyparsing, python-dateutil, setuptools)是否都与 Python 3.10 兼容。
  4. 尝试在虚拟环境中安装:

    • 创建一个新的 Python 虚拟环境,并在其中尝试安装 ROS 和相关依赖。这可以帮助隔离可能的版本冲突问题。
  5. 查看 ROS 和 Python 版本的兼容性信息:

    • ROS Noetic 通常与 Python 3 兼容,但可能不支持所有的 Python 3.x 版本。查阅 ROS Noetic 的文档,确认它与 Python 3.10 的兼容性。

于是,我们在conda哈环境中新建一个环境,使用python3.8版本:

????????Python 3.8 通常与 ROS Noetic 和大多数 Python 包更兼容。按照以下步骤创建和配置新的 Conda 环境:

创建新的 Conda 环境: 打开命令行界面,输入以下命令来创建一个新的环境(假设我们命名它为 ros_env)并指定 Python 版本为 3.8:

conda create -n ros_env python=3.8

激活新环境: 创建环境后,激活它:

conda activate ros_env

安装所需的包: 在新环境中,您需要重新安装 catkin_pkg 和任何其他 ROS 相关的依赖。使用 pipconda 来安装这些包:

pip install catkin_pkg

如果有其他依赖包也需要安装,同样使用 pip 安装。

下面,继续来到工作空间下进行编译,切换到你自己命名创建好的conda环境中:

catkin_make

接着肯定会报错,因为还缺少其他的包,下面我给出需要安装的包:

pip install empy

好了,再次编译出现如下则算成功:

问题解决!!!

补充:最后经过测试,python3.9版本也可以编译成功,推荐python3.9.12版本

其时也可以直接在conda环境中更改python的版本,比如:

激活您的 Conda 环境: 在命令行中,首先激活您要更改 Python 版本的 Conda 环境后,在更改版本之前,您可以检查当前使用的 Python 版本:

python --version

更改 Python 版本: 使用以下命令来安装新的 Python 版本到您的环境中:

conda install python=3.x

3.x 替换为您想要的 Python 版本号,例如 3.73.83.9

验证更改: 安装完成后,再次使用以下命令验证 Python 版本:

python --version

注意依赖兼容性: 更改 Python 版本可能会影响环境中其他包的兼容性。在更改版本后,确保重要的包仍然正常工作。您可能需要重新安装或更新某些包以确保兼容性。

文章来源:https://blog.csdn.net/qq_54900679/article/details/135780142
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。