Модули и подмодули Python в рабочей области ROS catkin

Я пытаюсь запустить код Python в ROS, и он включает в себя модуль (модуль не для ROS), который мне пришлось установить pip. Когда я пытаюсь запустить код в моем рабочем пространстве catkin с запущенным roscore, он не может найти модуль, который я установил, и выдает мне ошибку ImportError. Любая идея о том, как запустить уже созданные модули на ROS с Роспи?

1 ответ

Убедившись, что вы можете найти модуль

Вот 3 варианта. Все они должны работать и в порядке хакерства.

  1. Вы можете добавить модуль в package.xml, как в этом учебнике по ros numpy.

    <build_depend>python-numpy</build_depend>    
    <run_depend>python-numpy</run_depend>
    
  2. Установите переменную окружения $PTYHONPATH в вашем.bashrc:

    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
    
Другие вопросы по тегам