【问题标题】:Drake Installation Freeze德雷克安装冻结
【发布时间】:2020-04-15 01:18:18
【问题描述】:

我正在尝试安装 drake 的 python 绑定。在 make --j 之后它会冻结。我相信我已经正确地完成了前面的步骤。任何人都可以帮忙吗?我正在使用 python 3.6.9 在 Ubuntu 18.04 上运行。

提前谢谢你。看起来像这样。

Frozen Terminal

【问题讨论】:

  • 如果您展示您使用的实际命令,而不是仅仅说您认为您正确地执行了这些命令,这将对我们有所帮助。

标签: drake


【解决方案1】:

使用make(无-j标志)或make -j1,因为bazel(在构建期间内部调用)处理构建(和测试)的并行性,并将作业数设置为默认情况下的核心数(在您的情况下似乎是 8)。

要调整并行度以将作业数减少到少于内核数,请在存储库的根目录(与 WORKSPACE 文件相同级别)创建一个名为 user.bazelrc 的文件,其中包含内容

test --jobs=N

对于一些N 少于您拥有的核心数量。

另见https://docs.bazel.build/versions/master/guide.html#bazelrc

【讨论】:

    【解决方案2】:

    从屏幕截图来看,drake 构建系统似乎没有做错任何事情。但make -j 可能试图并行做太多事情。尝试从-j4 开始,如果仍然冻结,请转到2 等。

    【讨论】:

    • 与 Jamie S. 核对这一点;不确定作业控制是否会从 CMake 传递到 Bazel。 @Steven Yeung,如果 Russ 的解决方案不起作用(它可能!),您可能想要进行这样的更改,然后重新运行 CMake 配置:github.com/EricCousineau-TRI/drake/commit/980a2fe
    • 与 Jamie 确认,遗憾的是 make 的作业控制无法通过。不过,看看我是否可以提出控制它的建议! @Steven 目前,您可能需要使用我的 hack。
    【解决方案3】:

    可能内存不足..

    一个 hacky 解决方案是更改 CMakeLists.txt 文件以设置 bazel 使用的最大作业数,方法是在 ${BAZEL_TARGETS} 之后添加 --jobs N(其中 N 是您允许同时允许的作业数)像这样

    ExternalProject_Add(drake_cxx_python
      SOURCE_DIR "${PROJECT_SOURCE_DIR}"
      CONFIGURE_COMMAND :
      BUILD_COMMAND
        ${BAZEL_ENV}
        "${Bazel_EXECUTABLE}"
        ${BAZEL_STARTUP_ARGS}
        build
        ${BAZEL_ARGS}
        ${BAZEL_TARGETS}
        --jobs 1
      BUILD_IN_SOURCE ON
      BUILD_ALWAYS ON
      INSTALL_COMMAND
        ${BAZEL_ENV}
        "${Bazel_EXECUTABLE}"
        ${BAZEL_STARTUP_ARGS}
        run
        ${BAZEL_ARGS}
        ${BAZEL_TARGETS}
        --
        ${BAZEL_TARGETS_ARGS}
      USES_TERMINAL_BUILD ON
      USES_TERMINAL_INSTALL ON
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-15
      • 2021-10-05
      • 1970-01-01
      相关资源
      最近更新 更多