2 问题探索
检查发现,本地存在两个不同版本的python
解释器,分别对应出现问题的版本号3.10
和3.11
,这表明conda
虚拟环境的引入将导致colcon build
进行构建和安装时CMake
使用的python
解释器版本与python setup.py
使用的版本不同。
因此解决问题的核心是使用同一个环境的python
解释器。
首先卸载全局的colcon
编译选项,避免编译过程中错选
sudo apt remove python3-colcon-*
接着创建虚拟环境,原理可看Anaconda安装与Python虚拟环境配置保姆级图文教程(附速查字典)
conda create -n ros2 python=3.10
并切换到虚拟环境
conda activate ros2
创建后如下所示
在该虚拟环境中安装colcon
编译依赖项
pip install -U colcon-common-extensions
以及其他依赖项
pip install catkin_pkg numpy lark setuptools==58.2.0
此时可能还会出现问题
ImportError: /home/winter/anaconda3/envs/ros2/bin/../lib/libstdc++.so.6: version GLIBCXX_3.4.30' not found (required by /opt/ros/humble/local/lib/python3.10/dist-packages/rclpy/_rclpy_pybind11.cpython-310-x86_64-linux-gnu.so)
解决方法是安装gcc
conda install -c conda-forge gcc=12.1.0
至此已经可以成功编译
3 问题解决
总结一下修复的流程:
- 创建虚拟环境
conda create -n ros2 python=3.10
- 切换到虚拟环境
conda activate ros2
- 安装
colcon
构建系统
pip install -U colcon-common-extensions
- 安装其他依赖项
pip install catkin_pkg numpy lark setuptools==58.2.0
conda install -c conda-forge gcc=12.1.0
### 最后
> **🍅 硬核资料**:关注即可领取PPT模板、简历模板、行业经典书籍PDF。
> **🍅 技术互助**:技术群大佬指点迷津,你的问题可能不是问题,求资源在群里喊一声。
> **🍅 面试题库**:由技术群里的小伙伴们共同投稿,热乎的大厂面试真题,持续更新中。
> **🍅 知识体系**:含编程语言、算法、大数据生态圈组件(Mysql、Hive、Spark、Flink)、数据仓库、Python、前端等等。
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化学习资料的朋友,可以戳这里无偿获取](https://bbs.csdn.net/topics/618317507)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**