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

        今天在另外一台电脑上操作复现【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 版本可能会影响环境中其他包的兼容性。在更改版本后,确保重要的包仍然正常工作。您可能需要重新安装或更新某些包以确保兼容性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/343935.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++高精度问题

高精度前言 C中int不能超过2^31-1,最长的long long也不能超过2^63-1,所以我们在题目中如果碰到了很长很长的数,并且需要进行大数运算时,就需要高精度存储。 高精度总体思路 由于int和long long的限制,我们要想存放很长的数就需…

数据分析的理念、流程、方法、工具(下)

四、用户分群 1、用户分群 用户分群是精细化运营的基础要求,也是数据分析的最基础方式。对用户进行分群,能帮助我们了解每个细分群体用户的变化情况,进而了解用户的整体现状及发展趋势。同时,由于运营资源本身有限,不…

web开发学习笔记(14.mybatis基于xml配置)

1.基本介绍 2.基本使用 在mapper中定义 在xml中定义&#xff0c;id为方法名&#xff0c;resultType为实体类的路径 在测试类中写 3. 动态sql&#xff0c;if和where关键字 动态sql添加<where>关键字可以自动产生where和过滤and或者or关键字 where关键字可以动态生成whe…

【论文阅读|2024 WACV 多目标跟踪Deep-EloU】

论文阅读|2024 WACV 多目标跟踪Deep-EloU 摘要1 引言&#xff08;Introduction&#xff09;2 相关工作&#xff08;Related Work&#xff09;2.1 基于卡尔曼滤波器的多目标跟踪算法&#xff08;Multi-Object Tracking using Kalman Filter&#xff09;2.2 基于定位的多目标跟踪…

云原生网关哪家强:Sealos 网关血泪史

作者&#xff1a;Sealos 创始人&#xff0c;环界云计算 CEO 方海涛 Sealos 公有云 &#xff08;https://cloud.sealos.io&#xff09; 几乎打爆了市面上所有主流的开源网关&#xff0c;本文可以给大家很好的避坑&#xff0c;在网关选型方面做一些参考。 Sealos Cloud 的复杂场…

opencv011 滤波器03 高斯滤波

今天来学习一下高斯滤波&#xff01;高斯滤波是一种线性平滑滤波&#xff0c;适用于消除高斯噪声&#xff0c;广泛应用于图像处理的减噪过程。通俗的讲&#xff0c;高斯滤波就是对整幅图像进行加权平均的过程&#xff0c;每一个像素点的值&#xff0c;都由其本身和邻域内的其他…

Android开发之状态栏布局隐藏的方法

1.问题如下&#xff0c;安卓布局很不协调 2.先将ActionBar设置为NoActionBar 先打开styles.xml 3.使用工具类 package com.afison.newfault.utils;import android.annotation.TargetApi; import android.app.Activity; import android.content.Context; import android.graph…

Python实现两因素独立设计方差分析,简单效应分析

# Python实现两因素独立设计方差分析 1. 背景 1. 有研究者探讨了在不同企业文化下&#xff0c;管理者的不同语言风格所产生的影响 有的企业注重员工的独立性&#xff0c;强调个人努力和内部竞争&#xff1b;有的企业注重员工的整体性&#xff0c;强调团队合作和团队绩效。 …

MySQL函数—数值函数,随机数验证码生成

MySQL函数—日期函数 函数功能CEIL(x)向上取整FLOOR(x)向下取整MOD(x,y)返回x/y的模&#xff08;取余&#xff09;RAND()返回0-1的随机数ROUND(x,y)求参数x的四舍五入&#xff0c;保留y位小数 1、向上取整&#xff1a;CEIL。只要小数点后的数字大于0就取整。 select CEIL(1.2…

《Linux C编程实战》笔记:信号的发送

信号的发送主要由函数kill、raise、sigqueue、alarm、setitimer以及abort来完成 kill函数 kill函数用来发送信号给指定的进程。 #include<sys/types.h> #include<signal.h> int kill(pid_t pid,int sig); 该函数的行为与第一个参数pid有关&#xff0c;第二个参…

开源模型应用落地-业务整合篇(四)

一、前言 通过学习第三篇文章&#xff0c;我们已经成功地建立了IM与AI服务之间的数据链路。然而&#xff0c;我们目前面临一个紧迫需要解决的安全性问题&#xff0c;即非法用户可能会通过获取WebSocket的连接信息&#xff0c;顺利地连接到我们的服务。这不仅占用了大量的无效连…

jenkins安装配置,使用Docker发布maven项目全过程记录(2)

2、使用Docker发布Maven项目过程的配置 首先说明&#xff0c;在这里仅介绍我使用Jenkins的发布过程的配置&#xff0c;不涉及Dockerfile、docker-compose.yml文件的内容。 2.1 创建Item 在这里&#xff0c;输入item名称&#xff0c;我使用的Freestyle project&#xff0c;点击…

MSP430仿真器使用常见问题

一、 主要是驱动安装问题 有用户反应驱动安装不上&#xff0c;按照用户手册操作一直不能安装成功。 可以尝试如下步骤进行安装。 1. 双击设备管理器中无法安装或者提示有错误的430仿真器设备 选择驱动程序——更新驱动程序 选择手动安装 选择从电脑设备驱动列表中安装 弹出下…

Spring Security 6 学习-1

什么是 Spring Security Spring Security文档 Spring Security中文文档 Spring Security 是 Spring 家族中的安全型开发框架&#xff0c;主要解决三大方面问题&#xff1a;认证&#xff08;你是谁&#xff09;、授权&#xff08;你能干什么&#xff09;、常见攻击保护&#xff…

mysql INSERT数据覆盖现有元素(若存在)

INSERT...ON DUPLICATE KEY UPDATE的使用 如果指定了ON DUPLICATE KEY UPDATE&#xff0c;并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值&#xff0c;则会更新ON DUPLICATE KEY UPDATE关键字后面的字段值。 例如&#xff0c;如果列a被定义为UNIQUE&#xff0…

机器学习实验3——支持向量机分类鸢尾花

文章目录 &#x1f9e1;&#x1f9e1;实验内容&#x1f9e1;&#x1f9e1;&#x1f9e1;&#x1f9e1;数据预处理&#x1f9e1;&#x1f9e1;代码认识数据相关性分析径向可视化各个特征之间的关系图 &#x1f9e1;&#x1f9e1;支持向量机SVM求解&#x1f9e1;&#x1f9e1;直觉…

JavaEE-Nuxt中的vuex

Nuxt中的vuex 参考&#xff1a;https://v2.nuxt.com/docs/directory-structure/store 3.1 根模块数据操作 步骤一&#xff1a;创建 store/index.js 添加一个 counter变量&#xff0c;并可以继续累加操作 export const state () > ({counter: 0 })export const mutations …

用户反映在浏览器中使用AI工具 Copilot 遇到严重卡顿问题,微软官方给出初步解释

近日&#xff0c;多位用户反馈在使用Edge和Chrome浏览器中的Copilot时出现卡顿问题&#xff0c;甚至需要重启浏览器才能解决。对此&#xff0c;微软广告和网络服务部门CEO米哈伊尔帕拉欣表示&#xff0c;问题可能与Edge浏览器的“效率模式”有关。 微软中国官方网址链接&#x…

【GitHub项目推荐--12 年历史的 PDF 工具开源了】【转载】

最近在整理 PDF 的时候&#xff0c;有一些需求普通的 PDF 编辑器没办法满足&#xff0c;比如 PDF 批量合并、编辑等。 于是&#xff0c;我就去 GitHub 上看一看有没有现成的轮子&#xff0c;发现了这个 PDF 神器「PDF 补丁丁」&#xff0c;让人惊讶的是这个 PDF 神器有 12 年的…

C#,计算几何,鼠标点击绘制 (二维,三次)B样条曲线的代码

B样条&#xff08;B-Spline&#xff09;是常用的曲线拟合与插值算法之一。 这里给出在 Form 的 图像 Picturebox 组件上&#xff0c;按鼠标点击点绘制 &#xff08;三次&#xff09;B样条曲线的代码。 2022-12-05 修改了代码。 1 文本格式 using System; using System.Data; …