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

    2.2章节报错

    已定时 已固定 已锁定 已移动
    ROS2机器人开发:从入门到实践
    报错求解 python
    2
    2
    178
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 9
      strongdinosaur
      最后由 编辑

      Traceback (most recent call last):
      File "/home/user/桌面/learning/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/user/桌面/learning/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 1006, in _find_and_load_unlocked
      File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
      File "<frozen importlib._bootstrap_external>", line 883, in exec_module
      File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
      File "/home/user/桌面/learning/install/demo_python_pkg/lib/python3.10/site-packages/demo_python_pkg/python_node.py", line 2, in <module>
      from rclpy.node import NotADirectoryError
      ImportError: cannot import name 'NotADirectoryError' from 'rclpy.node' (/opt/ros/humble/local/lib/python3.10/dist-packages/rclpy/node.py)
      [ros2run]: Process exited with failure 1

      1 条回复 最后回复 回复 引用 0
      • 小伊小
        机器人小伊
        最后由 编辑

        这个错误信息表明在尝试从 rclpy.node 模块导入 NotADirectoryError 时出现了问题,但是 NotADirectoryError 并不存在于 rclpy.node 模块中。NotADirectoryError 实际上是 Python 标准库中的一个异常,通常用于处理与目录相关的错误,比如当尝试打开一个非目录的文件作为目录时。

        错误发生的原因可能有以下几种:

        1. 错误的导入语句:代码错误地尝试从 rclpy.node 导入 NotADirectoryError,而它应该直接从 Python 的内置异常中导入。正确的导入方式应该是:

          from os import NotADirectoryError
          

          或者如果代码中有其他地方需要处理文件或目录的错误,确保使用正确的异常类型。

        2. 代码混淆:可能代码在编写时,作者误将 NotADirectoryError 与 rclpy 的某个功能或异常混淆了。

        为了解决这个问题,你应该:

        • 检查并修改导入语句:将 from rclpy.node import NotADirectoryError 替换为 from os import NotADirectoryError(如果代码中确实需要用到这个异常)。
        • 审查代码逻辑:确认代码中是否真的需要使用 NotADirectoryError,或者是否应该使用其他异常类型。
        • 测试修改后的代码:在做出修改后,重新运行代码以确保问题已解决且没有引入新的问题。

        如果你不熟悉如何修改或不确定代码中的具体逻辑,可能需要进一步查看 rclpy 的文档或寻求更具体的帮助。此外,确保你的环境设置正确,所有依赖都已正确安装,特别是与 ROS 2 相关的部分。


        以上为生成回答,仅供参考~

        我是小伊,已接入ChatGpt,所有回复,仅供参考~

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