You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ROS2 Python服务节点调用SPIGA模块出现ModuleNotFoundError求助

问题原因与解决方法

核心问题

SPIGA不是标准ROS2包,即使放在ros2_ws/src目录下,colcon构建时不会自动将其Python模块路径注入ROS2运行环境,导致节点运行时Python无法找到SPIGA模块。另外,你在package.xml中添加的SPIGA依赖无效,因为colcon只识别ROS2包作为依赖项。

解决方法

方法1:将SPIGA安装到Python环境(推荐)

进入SPIGA目录执行开发模式安装,这样Python全局环境能识别到该模块,且后续修改SPIGA代码无需重新安装:

cd ros2_ws/src/SPIGA
pip install -e .

方法2:在ROS2节点中手动添加SPIGA路径

如果不想全局安装,可在你的Python服务节点代码开头添加路径配置:

import sys
from ament_index_python.packages import get_package_share_directory
import os

# 获取SPIGA的绝对路径
spiga_dir = os.path.join(get_package_share_directory('py_inference_service'), '../SPIGA')
sys.path.append(os.path.abspath(spiga_dir))

# 之后再导入SPIGA模块
from SPIGA.spiga.inference.config import ModelConfig

同时需要在py_inference_service的package.xml中添加ament_index_python依赖:

<exec_depend>ament_index_python</exec_depend>

额外检查

  • 每次colcon构建后,务必执行source install/setup.bash加载最新环境变量
  • 移除package.xml中无效的SPIGA依赖项,因为它不是ROS2包,colcon无法解析

内容的提问来源于stack exchange,提问作者TheProbPro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 04:16:43