Код: Выделить всё
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
Код: Выделить всё
[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'
Код: Выделить всё
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()
Код: Выделить всё
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