ROS catkin工作区中的Python模块和子模块

时间:2018-06-25 20:28:20

标签: python module ros rospy

我正在尝试在ROS中运行python代码,它包含一个我必须点安装的模块(不是ROS专用的模块)。当我尝试在roscore运行的情况下在我的catkin工作区中运行代码时,它找不到我安装的模块,并给我ImportError。关于如何使用rospy在ROS上运行已创建的模块的任何想法?

1 个答案:

答案 0 :(得分:1)

确保您可以找到该模块

这是3个选项。他们都应该工作,并且要有序。

  1. 您可以像在ros numpy tutorial中一样将该模块添加到package.xml中。

    <build_depend>python-numpy</build_depend>    
    <run_depend>python-numpy</run_depend>
    
  2. 在.bashrc中设置$ PTYHONPATH环境变量:

    export PYTHONPATH=$PYTHONPATH:/path/to/your/package_or_module
    
  3. 在将模块导入python代码之前,先注入模块的路径:

    import sys
    sys.path.insert(0, "/path/to/your/package_or_module")
    

确保您正确运行了程序

  1. 在运行程序之前,将.bashrc和catkin工作区资源化。

  2. 如果您尝试使用rosrun package_name filename.py,则需要确保该文件是可执行文件:

    chmod +x pythonfile.py
    

    ,并且python文件的顶部应具有以下代码:

    #!/usr/bin/env python
    
  3. 考虑直接使用python运行类似提到的akshayk07这样的文件

    python filename.py