ROS服务运行脚本时出现ModuleNotFoundError:找不到openai.embeddings_utils模块
解决ROS服务运行时
openai.embeddings_utils模块找不到的问题 问题原因
ROS运行环境的Python路径与你通过pip install openai安装模块的路径不一致,导致ROS调用脚本时无法定位到对应模块。
排查步骤
- 确认当前终端使用的Python版本:
which python python --version
- 查看ROS环境的Python路径配置:
echo $PYTHONPATH
- 检查openai模块的安装位置:
pip show openai
重点关注输出中的Location字段,确认该路径是否包含在ROS的PYTHONPATH中。
解决方案
方案1:针对ROS环境的Python版本重新安装openai
如果ROS使用Python3,执行:
pip3 install openai --upgrade
若ROS使用Python2(注意:OpenAI官方已停止对Python2的支持,此方案仅适配旧版本openai):
pip2 install openai==0.28.1
方案2:将openai安装路径添加到ROS的PYTHONPATH中
假设pip show openai输出的Location为/home/your_username/.local/lib/python3.8/site-packages,在终端执行:
source devel/setup.bash export PYTHONPATH=$PYTHONPATH:/home/your_username/.local/lib/python3.8/site-packages
若想永久生效,可将上述export命令添加到~/.bashrc文件末尾,保存后执行source ~/.bashrc。
方案3:调整ROS包的CMake配置
在你的ROS包的CMakeLists.txt中,添加以下配置(替换scripts/your_script.py为你的实际脚本路径):
catkin_install_python(PROGRAMS scripts/your_script.py DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} )
重新执行catkin_make和source devel/setup.bash。
内容的提问来源于stack exchange,提问作者sonlas10
相关产品推荐
相关产品推荐

