python功能包节点运行ros2 run demo_python_dpkg python_node时找不到名为“demo_python_pkg.python_node”的module
-
python功能包节点运行ros2 run demo_python_dpkg python_node时找不到名为“demo_python_pkg.python_node”的module
dw@dw:~/codes/chapt2$ ros2 run demo_python_pkg python_node
Traceback (most recent call last):
File "/home/dw/codes/chapt2/install/demo_python_pkg/lib/demo_python_pkg/python_node", line 33, in <module>
sys.exit(load_entry_point('demo-python-pkg==0.0.0', 'console_scripts', 'python_node')())
File "/home/dw/codes/chapt2/install/demo_python_pkg/lib/demo_python_pkg/python_node", line 25, in importlib_load_entry_point
return next(matches).load()
File "/usr/lib/python3.10/importlib/metadata/init.py", line 171, in load
module = import_module(match.group('module'))
File "/usr/lib/python3.10/importlib/init.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 1004, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'demo_python_pkg.python_node'
[ros2run]: Process exited with failure 1这种情况该如何解决
-
source了吗
-
@casketaaa source过了,环境变量的路径是没有问题的
dw@dw:~/codes/chapt2$ echo $AMENT_PREFIX_PATH
/home/dw/codes/chapt2/install/demo_python_pkg:/opt/ros/humble -
@2208735873 已解决
ls install/demo_python_pkg/lib/python3.10/site-packages/demo_python_pkg/
此命令查看功能包下无python_node.py文件,有__init__.py文件和__pycache__文件夹,init.py文件是空的。我的解决方法是在此路径下新建一个python_node.py文件,把创建节点语句复制进去,然后运行ros2 run demo_python_dkg python_node命令即可正常运行。但是为何此路径下没有python_node.py文件我尚未可知,希望有大佬遇到类似的问题可以在补充交流。参考以下话题:https://fishros.org.cn/forum/topic/3496/ros2-包组织python节点失败
-
@2208735873 回去重新看了一下,python_node.py文件创建错了位置,应该在demo_python_pkg/demo_python_pkg文件下。
犯了很低级的错误