曲79 2025-04-10 19:49 采纳率: 0%
浏览 47

UE4/carla Python运行版本不一致出错

INFO: listening to server 127.0.0.1:2000
WARNING: Version mismatch detected: You are trying to connect to a simulator that might be incompatible with this API
WARNING: Client API version = 0.9.13
WARNING: Simulator API version = 0.9.14-dirty

进程已结束,退出代码为 139 (interrupted by signal 11:SIGSEGV)

img

UE4 + carla Python脚本运行程序强制结束,报错为版本不一致。
但是网上很多人说版本不一致也能运行,想知道出错在什么地方。

  • 写回答

3条回答 默认 最新

  • 码农阿豪@新空间 新星创作者: 前端开发技术领域 2025-04-10 19:51
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    在使用 Unreal Engine 4 (UE4) 与 Carla Simulator 进行集成时,可能会出现版本不一致的问题,这通常会导致程序的强制结束。根据你提供的错误信息,我们可以分析并解决这个问题。

    错误分析

    1. 版本不一致:

      • 从你的日志可以看到,客户端 API 版本是 0.9.13,而模拟器 API 版本是 0.9.14-dirty。这种版本不匹配可能导致 API 调用不兼容,从而引发程序崩溃(如信号 11: SIGSEGV)。
    2. SIGSEGV 信号:

      • 程序因为试图访问未分配的内存区域而被操作系统终止。这通常是由版本不兼容造成的,因为某些功能或接口可能已在新版本中进行更改或删除。

    解决方案

    为了解决这个问题,你可以采取以下步骤: 1. 保持版本一致: - 确保 Carla Simulator 的版本与客户端 API 版本相同或兼容。你可以选择将客户端升级到 0.9.14,或将 Carla 降级到 0.9.13。 - 使用以下命令检查和更新你的 Carla 版本(假设你是从 GitHub 克隆的代码): bash git fetch --tags git checkout tags/<desired_version> 2. 验证 Python 脚本: - 检查你的 Python 脚本,确保它适配于当前版本的 API。如果使用了已经被编辑或删除的功能,可能会导致崩溃。 3. 参考文档: - 阅读 Carla 的官方文档来了解最新的 API 变更和使用示例。

    示例代码

    下面是一个简单的连接到 Carla Simulator 的 Python 脚本示例:

    import carla
    def main():
        # 创建 Carla 客户端
        client = carla.Client('127.0.0.1', 2000)
        client.set_timeout(10.0)  # 设置请求超时
        # 获取世界对象
        world = client.get_world()
        # 输出当前世界信息
        print("Current world:", world.get_map().name)
    if __name__ == "__main__":
        try:
            main()
        except RuntimeError as e:
            print(f"Runtime Error: {e}")
        except Exception as e:
            print(f"An unexpected error occurred: {e}")
    

    注意事项

    • 如果在代码中尝试调用某个不再存在的 API 函数,也会导致崩溃。因此在更新版本时,需要相应地更新代码。
    • 在不同版本之间使用功能前,最好先查看版本变更日志,了解破坏性更改。

    结论

    检测到的版本不一致是导致你程序崩溃的直接原因。通过保持软件版本的一致性,并仔细检查代码中与新版本 API 的兼容性,可以有效解决这个问题。

    评论

报告相同问题?

问题事件

  • 创建了问题 4月10日