2

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

4

1 回答 1

1

确保您可以找到该模块

这里有 3 个选项。他们都应该工作并且是为了hackiness。

  1. 您可以像在这个ros numpy 教程中一样将模块添加到 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
    
于 2018-06-27T17:32:21.807 回答