鱼香ROS社区
    • 版块
    • 最新
    • 未解决
    • 已解决
    • 群组
    • 注册
    • 登录
    紧急通知:禁止一切关于政治&VPN翻墙等话题,发现相关帖子会立马删除封号
    提问前必看的发帖注意事项: 社区问答规则(小鱼个人)更新 | 高质量帖子发布指南

    ImportError: module 'village_li.li4' has no attribute 'main'。

    已定时 已固定 已锁定 已移动
    ROS 2相关问题
    ros2 foxy ros2 run失败
    4
    6
    652
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 25357189622
      YBH最帅!
      最后由 编辑

      鱼哥,你好。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"。我又从头检查了一下,发现之前能运行的节点,现在也不可以了。不知道犯了哪里的错误,希望鱼哥能看一下,谢谢啦!

      小鱼小 11447056221 2 条回复 最后回复 回复 引用 0
      • 小鱼小
        小鱼 技术大佬 @2535718962
        最后由 编辑

        @2535718962 在 ImportError: module 'village_li.li4' has no attribute 'main'。 中说:

        li4_node = village_li.li4:main","li3_node = village_li.li3:main"

        把里面的空格去掉试试

        新书配套视频:https://www.bilibili.com/video/BV1GW42197Ck/

        25357189622 1 条回复 最后回复 回复 引用 0
        • 25357189622
          YBH最帅! @小鱼
          最后由 编辑

          @小鱼 错误是之前开启的终端运行节点没有关闭导致的,谢谢鱼哥

          小鱼小 8976137478 2 条回复 最后回复 回复 引用 0
          • 小鱼小
            小鱼 技术大佬 @2535718962
            最后由 编辑

            @2535718962 👍

            新书配套视频:https://www.bilibili.com/video/BV1GW42197Ck/

            1 条回复 最后回复 回复 引用 0
            • 8976137478
              廾匸 @2535718962
              最后由 编辑

              @2535718962 兄弟,看你出现了has no attribute 'main'类似的问题,求解决办法

              1 条回复 最后回复 回复 引用 0
              • 11447056221
                璇璣•玉衡 @2535718962
                最后由 编辑

                @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
                
                1 条回复 最后回复 回复 引用 0
                • 第一个帖子
                  最后一个帖子
                皖ICP备16016415号-7
                Powered by NodeBB | 鱼香ROS