ROS2 ModulenOtFoundError «Нет модуля с именем« configs »». Не может импортировать модули в узелPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 ROS2 ModulenOtFoundError «Нет модуля с именем« configs »». Не может импортировать модули в узел

Сообщение Anonymous »

Я работаю над проектом ROS2 и сталкиваюсь с проблемой, в которой мой узел не может импортировать модули из пакета Config. Ниже приведено подробное описание проблемы, включая структуру моего проекта, сообщение об ошибке и шаги, которые я уже предпринял для устранения неполадок. < /P>

Код: Выделить всё

test_ws/
├── src/
│   └── test_package/
│       ├── configs/
│       │   ├── __init__.py
│       │   └── global_settings.py
│       ├── test_package/
│       │   ├── __init__.py
│       │   ├── gps_path_planning_node.py
│       │   └── scripts/
│       │       ├── __init__.py
│       │       └── utils.py
│       ├── package.xml
│       ├── setup.cfg
│       └── setup.py
Когда я запускаю узел, используя запуск ROS2 TEST_PACKAGE SIMUTION_LAUNCH.PY , я встречаюсь с следующей ошибкой:

Код: Выделить всё

[gps_path_planning_node-5] Traceback (most recent call last):
[gps_path_planning_node-5]   File "/home/hiber/Desktop/test_ws/install/test_package/lib/test_package/gps_path_planning_node", line 33, in 
[gps_path_planning_node-5]     sys.exit(load_entry_point('test-package==0.0.0', 'console_scripts', 'gps_path_planning_node')())
...
[gps_path_planning_node-5] ModuleNotFoundError: No module named 'configs'
фрагмент кода (gps_path_planning_node.py):

Код: Выделить всё

from rclpy.node import Node
import rclpy
from configs import global_settings
from test_package.scripts.utils import *

class GPSPathPlanningNode(Node):
def __init__(self):
super().__init__('gps_path_planning_node')
self.max_speed = EGO_VEHICLE_MAX_SPEED
self._logger.info('Successfully launched!')

def main(args=None):
rclpy.init(args=args)
node = GPSPathPlanningNode()
rclpy.spin(node)
node.destroy_node()
rclpy.shutdown()

if __name__ == '__main__':
main()
Содержимое setup.py следующим образом:

Код: Выделить всё

import os
from setuptools import setup

PACKAGE_NAME = 'test_package'

def generate_data_files(share_path, data_files_path):
data_files_temp = []

for path, _, files in os.walk(data_files_path):
data_file = (
os.path.dirname(os.path.dirname(share_path)) + '/' + path, [
os.path.join(path, file) for file in files if not file.startswith('.')
]
)

data_files_temp.append(data_file)

return data_files_temp

data_files = []

data_files.append(('share/ament_index/resource_index/packages', ['resource/' + PACKAGE_NAME]))
data_files.append(('share/' + PACKAGE_NAME, ['package.xml']))

data_files += generate_data_files('share/' + PACKAGE_NAME + '/configs/', 'configs/')
data_files += generate_data_files('share/' + PACKAGE_NAME + '/launch/', 'launch/')
data_files += generate_data_files('share/' + PACKAGE_NAME + '/resource/', 'resource/')

setup(
name=PACKAGE_NAME,
version='0.0.0',
packages=[PACKAGE_NAME],
data_files=data_files,
install_requires=['setuptools'],
zip_safe=True,
maintainer='hiber',
maintainer_email='...',
description='TODO: Package description',
license='TODO: License declaration',
tests_require=['pytest'],
entry_points={
'console_scripts': [
# 'ackermann_keyboard_teleop_node = test_package.ackermann_keyboard_teleop_node:main',
'gps_path_planning_node = test_package.gps_path_planning_node:main',
'projection_weight_matrices_node = test_package.projection_weight_matrices_node:main',
'surround_view_node = test_package.surround_view_node:main',
],
},
)
Детали среды:
  • Ros2 Распределение: Humble
  • версия Python: 3.10
  • os: ubuntu 22.04

/> Я был бы признателен за любым руководством по решению этой проблемы. В частности: < /p>

[*] Почему модуль все еще не найден, несмотря на то, что в пакете

< /li>
Есть дополнительные шаги конфигурации, которые я мог пропустить? < /Li>
< /ol>
. /> перенесен Global_settings.py : i переместил Global_settings.py в тот же каталог, что и gps_path_planning_node.py и обновил оператор Import до test_package.global_settings Import *. Тем не менее, другие модули из других папок не найдены, такие как utils.py из Scripts/
[*] проверенный настройка Clean , за которым следует Colcon Build -Symlink -Install и поставлял рабочее пространство.
тестируемое импорт локально
: запуск python3 -c "From test_package.global_settings Import *; print ('import успешный')" работает без ошибок. install/test_package/lib/python3.10/site-packages/test_package/ должен содержать другие модули (одинаковые конфигурации/ с Global_settings.py и scripts/ с utils.py ). На самом деле это так?>

Подробнее здесь: https://stackoverflow.com/questions/794 ... dules-into
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»