
【ROS2】解决 ModuleNotFoundError: rclpy手把手教你配置运行环境 前言为什么在终端能跑PyCharm 却报错很多 ROS2 初学者都会遇到这样一个崩溃瞬间明明在终端里source setup.bash后脚本跑得飞起一旦点击 PyCharm 的绿色三角形运行控制台就立刻抛出红色报错Traceback (most recent call last): File .../move_straight.py, line 1, in module import rclpy ModuleNotFoundError: No module named rclpy根本原因PyCharm 的运行环境是独立的它不会自动加载你在.bashrc或终端里 source 过的 ROS2 环境变量。Python 解释器不知道去哪里找rclpy自然就会报“找不到模块”。今天这篇博文我们就来彻底解决这个问题通过配置Run Configuration让你的 PyCharm 也能像终端一样丝滑运行 ROS2 代码。️ 核心解决方案配置环境变量我们需要手动告诉 PyCharm“嘿ROS2 的库在这里Python 的包也在这里”。请按照以下步骤操作第一步打开运行配置点击 PyCharm 右上角的运行配置下拉框通常显示为move_straight或Current File。选择Edit Configurations…。在左侧列表中找到你正在运行的 Python 脚本例如move_straight。第二步添加关键环境变量在右侧面板中找到Environment variables一栏点击右侧的文件夹图标进入编辑界面。你需要添加以下两个核心变量请根据你的 ROS2 版本和路径微调变量名变量值作用解析PYTHONPATH/opt/ros/jazzy/lib/python3.12/site-packages解决 rclpy 报错的关键。告诉 Python 解释器去这个目录下寻找 ROS2 的 Python 库。LD_LIBRARY_PATH/opt/ros/jazzy/lib解决底层 C 库缺失。ROS2 底层依赖 DDS 通信必须指定动态链接库路径否则后续可能报ImportError。 提示如果你还有自定义的工作空间比如~/ros2_ws/install/my_robot_controller也需要把对应的lib和site-packages路径追加到这两个变量中用冒号:分隔。第三步保存并验证点击 OK 保存配置再次点击绿色三角形运行。如果配置正确你的move_straight.py应该就能成功导入rclpy并正常启动了。 深度解析为什么要配这两个变量为了让你不仅“知其然”更“知其所以然”这里简单拆解一下这两个变量的区别PYTHONPATH (给 Python 看的)它相当于 Python 的“图书索引”。当你写import rclpy时Python 会沿着PYTHONPATH列出的目录去寻找rclpy文件夹。如果不配这个Python 就只能去系统默认的/usr/lib/python3里找当然找不到 ROS2 的专属库。LD_LIBRARY_PATH (给操作系统看的)它相当于操作系统的“DLL 搜索路径”。ROS2 的 Python 库底层其实调用了大量 C 编写的动态链接库.so 文件。即使 Python 找到了rclpy如果操作系统找不到底层的.so文件程序依然会在运行时崩溃。⚠️ 避坑指南路径要精准注意看你的 ROS2 版本是jazzy、humble还是foxyPython 版本是3.10还是3.12。路径错一个字符都会导致失败。你可以用python3 -c import rclpy; print(rclpy.__file__)在终端里反查真实路径。不要覆盖原有变量在 PyCharm 的环境变量编辑器中直接填入绝对路径即可。PyCharm 会自动处理追加逻辑。如果你在 Shell 脚本里写记得用$PYTHONPATH保留原有内容。Interpreter 也要对确保 PyCharm 右下角选择的 Python 解释器和你安装 ROS2 的那个 Python 版本一致通常是系统自带的 Python3。 结语配置好这一次以后所有的 ROS2 Python 脚本都可以一键运行再也不用每次都在终端里敲长长的source命令了。如果你觉得这篇博文帮到了你欢迎点赞收藏分享给更多被rclpy报错折磨的小伙伴