今天在另外一台电脑上操作复现【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,这里建议:
-
检查
catkin_pkg
和 Python 3.10 的兼容性:- 虽然
catkin_pkg
已安装,但可能存在与 Python 3.10 的兼容性问题。尝试查找catkin_pkg
的官方文档或相关论坛,看看是否有关于 Python 3.10 兼容性的信息。
- 虽然
-
使用系统 Python:
- ROS 更常与系统自带的 Python 版本(通常是 Python 2.7 或 Python 3.6/3.8)兼容。如果可能,尝试使用系统自带的 Python 版本而不是 Anaconda 的 Python 版本。可以通过修改环境变量或创建一个新的虚拟环境来实现。
-
检查其他依赖:
- 根据错误信息,可能还需要检查其他依赖(如
docutils
,pyparsing
,python-dateutil
,setuptools
)是否都与 Python 3.10 兼容。
- 根据错误信息,可能还需要检查其他依赖(如
-
尝试在虚拟环境中安装:
- 创建一个新的 Python 虚拟环境,并在其中尝试安装 ROS 和相关依赖。这可以帮助隔离可能的版本冲突问题。
-
查看 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 相关的依赖。使用 pip
或 conda
来安装这些包:
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.7
、3.8
或 3.9
。
验证更改: 安装完成后,再次使用以下命令验证 Python 版本:
python --version
注意依赖兼容性: 更改 Python 版本可能会影响环境中其他包的兼容性。在更改版本后,确保重要的包仍然正常工作。您可能需要重新安装或更新某些包以确保兼容性。