小鱼 ROS 2 新书上线!点击链接查看, 新书配套视频点击链接查看。
提问前必看的发帖注意事项—— 提问前必看!不符合要求的问题拒绝回答!!
社区使用指南—如何添加标签修改密码
ImportError: module 'village_li.li4' has no attribute 'main'。
-
鱼哥,你好。ros2-foxy版本,我做到4.2.3小练习李三白嫖时,编译完成,运行ros2 run village_li li4_node,出现了这个错误ImportError: module 'village_li.li4' has no attribute 'main'。我在setup.py文件里也加入了"li4_node = village_li.li4:main","li3_node = village_li.li3:main"。我又从头检查了一下,发现之前能运行的节点,现在也不可以了。不知道犯了哪里的错误,希望鱼哥能看一下,谢谢啦!
-
@2535718962 在 ImportError: module 'village_li.li4' has no attribute 'main'。 中说:
li4_node = village_li.li4:main","li3_node = village_li.li3:main"
把里面的空格去掉试试
-
@小鱼 错误是之前开启的终端运行节点没有关闭导致的,谢谢鱼哥
-
-
@2535718962 兄弟,看你出现了has no attribute 'main'类似的问题,求解决办法
-
@2535718962
缺少main函数,ros教程文档只给你class部分,main实际上跟之前的一样。
在后面加上:def main(args=None):
"""
ros2运行该节点的入口函数
编写ROS2节点的一般步骤
1. 导入库文件
2. 初始化客户端库
3. 新建节点对象
4. spin循环节点
5. 关闭客户端库
"""
rclpy.init(args=args) # 初始化rclpy
#node = Node("li44444") # 新建一个节点
#node.get_logger().info("大家好,我是作家li44444.")node = WriterNode("li777") # 新建一个节点 rclpy.spin(node) # 保持节点运行,检测是否收到退出指令(Ctrl+C) rclpy.shutdown() # 关闭rclpy
def main(args=None):
"""
ros2运行该节点的入口函数
编写ROS2节点的一般步骤
1. 导入库文件
2. 初始化客户端库
3. 新建节点对象
4. spin循环节点
5. 关闭客户端库
"""
rclpy.init(args=args) # 初始化rclpy
#node = Node("li4") # 新建一个节点
#node.get_logger().info("大家好,我是作家li44444.")node = WriterNode("li4") # 新建一个节点 rclpy.spin(node) # 保持节点运行,检测是否收到退出指令(Ctrl+C) rclpy.shutdown() # 关闭rclpy