【问题标题】:How to fix cmake install in Jupyter kernels, specifically Google Colab?如何修复 Jupyter 内核中的 cmake 安装,特别是 Google Colab?
【发布时间】:2019-06-07 15:28:09
【问题描述】:

我正在尝试让 OpenAI roboschool 在 Google Colab 中运行(有一个虚拟显示设置,可以在训练期间记录环境并在之后显示视频)。 roboschool 库将导入,但是当我运行时,环境(根本)没有正确显示:

import roboschool, gym; 
print("\n".join(['- ' + spec.id for spec in 
gym.envs.registry.all() if spec.id.startswith('Roboschool')]))

列表是空的,它应该包括环境。

当 cmake 链接 dll 时,它是否使用环境变量这样做? Colab 中的环境变量不能像往常一样工作,我认为这可能是问题所在。我知道的不够多,无法确定。

这个输出在我看来是可疑的,运行时路径将被删除似乎不正确。其中有很多,所以我只抓了两个。

-- Set runtime path of "/content/roboschool/roboschool/cpp- 
household/bullet_local_install/lib/libBulletDynamics.so.2.87" to "" 
-- Set runtime path of "/content/roboschool/roboschool/cpp- 
household/bullet_local_install/lib/libBullet3Geometry.so.2.87" to "

这是命令序列。

cmake -DBUILD_SHARED_LIBS=ON -DUSE_DOUBLE_PRECISION=1 - 
  DCMAKE_INSTALL_PREFIX:PATH=/content/roboschool/roboschool/cpp- 
  household/bullet_local_install -DBUILD_CPU_DEMOS=OFF - 
  DBUILD_BULLET2_DEMOS=OFF -DBUILD_EXTRAS=OFF  -DBUILD_UNIT_TESTS=OFF - 
  DBUILD_CLSOCKET=OFF -DBUILD_ENET=OFF -DBUILD_OPENGL3_DEMOS=OFF ..
make -j4
make install

有没有一种方法可以覆盖为链接库确定路径的方式,以便在正确的情况下链接到正确的路径?似乎研究 RPATH 可能是朝着正确方向迈出的一步?

提前致谢。如果需要更多详细信息,请告诉我。

【问题讨论】:

    标签: cmake jupyter-notebook jupyter google-colaboratory


    【解决方案1】:

    很难说没有更多细节会发生什么,但是如果您将 .so 构建到您希望 python 运行时看到的非标准位置,您必须以某种方式告诉运行时有关 .so 的位置。根据您提供的 sn-ps 进行猜测,也许这(可能在运行时重新启动后(ctrl-m-period))会解除对您的阻止:

    import os
    os.environ['LD_LIBRARY_PATH'] = '/content/roboschool/roboschool/cpp-household/bullet_local_install/lib:' + os.environ['LD_LIBRARY_PATH']
    

    如果这不适合你,另外两个建议是:

    1. 更改您的配置以安装到“标准”位置
    2. 共享一个重现问题的最小笔记本。

    【讨论】:

      猜你喜欢
      • 2021-02-02
      • 1970-01-01
      • 1970-01-01
      • 2017-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-04
      • 2022-10-24
      相关资源
      最近更新 更多