У меня в настоящее время есть проблема с импортированием .srv-файлов, которые я определил где-то, что я не могу импортировать в файл service_def.py .. Почему это невозможно?ROS import srv message - relative import jump issue
Я сделал это как rosnode моя ЦСИ папка catkin_workspace выглядит следующим образом
.
├── CMakeLists.txt -> /opt/ros/indigo/share/catkin/cmake/toplevel.cmake
└── service
├── CMakeLists.txt
├── include
│ └── service
│ ├── __init__.py
│ ├── service_def.py
│ └── service_def.pyc
├── package.xml
├── setup.py
├── src
│ └── service_node.py
└── srv
├── get.srv
├── set.srv
└── __init__.py
service_def.py определяется как такой
from ..srv import *
И мой service_node.py, который я rosrun
импорт service_def.py
import service.service_def
Итак, почему я не могу импортировать свой servi ce сообщения в service_def.py?
сообщение об ошибке:
[email protected]:~/python_service/src$ rosrun service service_node.py
Traceback (most recent call last):
File "/home/k/python_service/src/service/src/service_node.py", line 5, in <module>
import service.service_def
File "/home/k/python_service/src/service/include/service/service_def.py", line 1, in <module>
from ..srv import *
ValueError: Attempted relative import beyond toplevel package
Мой setup.py выглядит следующим образом:
## ! DO NOT MANUALLY INVOKE THIS setup.py, USE CATKIN INSTEAD
from distutils.core import setup
from catkin_pkg.python_setup import generate_distutils_setup
# fetch values from package.xml
setup_args = generate_distutils_setup(
packages=['service'],
package_dir={'': 'include'},
)
setup(**setup_args)
как импортировать служебные файлы? –
Проблема заключается в импорте 'service_def.py' .. Он не импортирует файлы srv. –
@CarltonBanks Предполагается, что ваш 'setup.py' определяет сервис (который согласно Traceback он делает), а в' CMakeLists.txt' вы определили служебные файлы (как указано в учебниках ROS). Вы можете взглянуть на этот [учебник] (http://wiki.ros.org/rospy_tutorials/Tutorials/Makefile), чтобы увидеть пример того, как «setup.py» используется catkin. –