为ROS包生成Sphinx文档遇报错:找不到'msg'模块
ROS Sphinx Autodoc 无法识别actionlib导入的解决办法
问题核心原因
ROS的action生成模块(如dialogflow_actions.msg)是catkin编译后才会生成到devel空间的,这类模块的导入依赖ROS的环境变量配置,单纯手动添加devel下的子目录路径,无法让Python正确识别包的层级结构。
可行解决步骤
加载ROS环境变量:运行Sphinx前必须先source工作空间的setup文件,这会自动把ROS生成的Python模块路径注入
PYTHONPATH,比手动配置更可靠:source /home/wstyczen/tiago_public_ws/devel/setup.bash修正conf.py的路径配置:若要手动添加路径,不能只加
dialogflow_actions目录,需添加其上级的dist-packages路径,让Python能识别完整的包层级:sys.path.insert(0, os.path.abspath('/home/wstyczen/tiago_public_ws/devel/lib/python2.7/dist-packages'))绑定ROS环境执行Sphinx:避免在未加载ROS环境的终端运行
sphinx-build,可将source命令与构建命令合并执行:source /home/wstyczen/tiago_public_ws/devel/setup.bash && sphinx-build -b html docs/source docs/build验证生成模块的完整性:确认
/home/wstyczen/tiago_public_ws/devel/lib/python2.7/dist-packages/dialogflow_actions/msg目录存在,且包含自动生成的__init__.py文件。
内容的提问来源于stack exchange,提问作者wstyczen
相关产品推荐
相关产品推荐

