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

    使用一键安装过程中遇到程序崩溃

    已定时 已固定 已锁定 已移动 已解决
    一键安装
    一键安装 python环境
    3
    4
    366
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • ls3470319318L
      ls3470319318
      最后由 编辑

      在此之前,我下载了python3.8.5版本,并执行了以下操作

      code_text
      cd /usr/bin
      sudo rm -rf python
      sudo ln -s /usr/local/bin/python3.8.5 python
      

      在安装后,colcon build则会报错

      CMake Error at /opt/ros/humble/share/ament_cmake_core/cmake/core/ament_package_xml.cmake:95 (message):
        execute_process(/usr/local/bin/python3
        /opt/ros/humble/share/ament_cmake_core/cmake/core/package_xml_2_cmake.py
        /home/liushuang/chapt7/chapt7_ws/src/fishbot_description/package.xml
        /home/liushuang/chapt7/chapt7_ws/build/fishbot_description/ament_cmake_core/package.cmake)
        returned error code 1
      Call Stack (most recent call first):
        /opt/ros/humble/share/ament_cmake_core/cmake/core/ament_package_xml.cmake:49 (_ament_package_xml)
        /opt/ros/humble/share/ament_lint_auto/cmake/ament_lint_auto_find_test_dependencies.cmake:31 (ament_package_xml)
        CMakeLists.txt:23 (ament_lint_auto_find_test_dependencies)
      
      
      ---
      Failed   <<< fishbot_description [3.25s, exited with code 1]
      

      后面我想使用小鱼一键安装重新配置环境,发现还是会报错

      Traceback (most recent call last):
        File "/tmp/fishinstall/install.py", line 134, in <module>
          main()
        File "/tmp/fishinstall/install.py", line 60, in main
          from tools.base import CmdTask,FileUtils,PrintUtils,ChooseTask,ChooseWithCategoriesTask,Tracking
        File "/tmp/fishinstall/tools/base.py", line 782, in <module>
          osversion = GetOsVersion()
        File "/tmp/fishinstall/tools/base.py", line 112, in GetOsVersion
          import distro
      ModuleNotFoundError: No module named 'distro'
      
      小鱼小 1 条回复 最后回复 回复 引用 0
      • 小伊小
        机器人小伊
        最后由 编辑

        从你提供的信息来看,问题主要出现在两个方面:

        1. Python 环境配置问题:
          你手动删除了系统默认的 Python 版本,并创建了一个指向 Python 3.8.5 的符号链接。这可能导致 ROS 2(你使用的是 Humble 版本)或其他依赖系统 Python 的工具出现问题,因为 ROS 2 可能需要特定版本的 Python,并且期望在 /usr/bin/python 或 /usr/bin/python3 下找到它。

        2. 一键安装脚本中的 Python 依赖问题:
          在尝试使用一键安装脚本时,脚本因为缺少 distro 模块而失败。这通常意味着 Python 环境中缺少某些必要的库。

        解决步骤

        1. 恢复系统 Python

        首先,建议恢复系统的默认 Python 版本。这通常是一个较为保守的 Python 版本,如 Python 3.6 或 3.7(取决于你的 Linux 发行版)。你可以通过重新安装 Python 来实现这一点,例如在 Ubuntu 上:

        sudo apt-get update
        sudo apt-get install --reinstall python3
        

        确保 /usr/bin/python3 指向正确的系统 Python 版本。

        2. 安装 ROS 2 所需的 Python 版本

        ROS 2 Humble 官方推荐使用 Python 3.8 或更高版本。但是,不建议直接修改系统默认的 Python 版本。你可以使用如 pyenv 或 conda 这样的工具来管理多个 Python 版本。

        3. 安装或更新 Python 包

        确保你的 Python 环境中安装了所有必要的包。对于一键安装脚本中的错误,你可以尝试在命令行中直接安装 distro 包:

        python3 -m pip install distro
        

        或者,如果你使用的是特定的 Python 环境(如 conda 环境),确保你在该环境中安装了所有必需的包。

        4. 重新运行一键安装脚本

        在确认所有依赖都已正确安装后,再次尝试运行一键安装脚本。

        5. 检查 ROS 2 工作空间

        如果问题仍然存在,检查你的 ROS 2 工作空间是否配置正确,包括 setup.bash 是否已正确 source。

        注意事项

        • 在修改系统级别的 Python 配置时,务必小心,因为这可能会影响系统的稳定性和其他应用程序的运行。
        • 使用版本管理工具(如 pyenv, conda)来管理 Python 版本和依赖,可以避免很多与版本冲突相关的问题。
        • 确保你的系统环境变量(如 PATH)设置正确,以便正确调用 Python 和其他工具。

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

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

        1 条回复 最后回复 回复 引用 0
        • 小鱼小
          小鱼 技术大佬 @ls3470319318
          最后由 编辑

          @ls3470319318 不要改默认的系统版本

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

          ls3470319318L 1 条回复 最后回复 回复 引用 0
          • ls3470319318L
            ls3470319318 @小鱼
            最后由 编辑

            @小鱼 谢谢鱼哥,已经解决了

            1 条回复 最后回复 回复 引用 0
            • 小伊小 小伊 将这个主题转为问答主题,在
            • 小伊小 小伊 将这个主题标记为已解决,在
            • 第一个帖子
              最后一个帖子
            皖ICP备16016415号-7
            Powered by NodeBB | 鱼香ROS