【问题标题】:Changing LD_LIBRARY_PATH on Google Colab在 Google Colab 上更改 LD_LIBRARY_PATH
【发布时间】:2021-02-27 20:09:29
【问题描述】:

我正在尝试在 google colab 上编译和运行一些 c++ 代码,这取决于 GSL 库。导入步骤是确保几个关键文件(例如 libgsl.so.25)位于与您的 LD_LIBRARY_PATH 环境变量关联的文件夹中。目前,LD_LIBRARY_PATH 设置为;

!echo $LD_LIBRARY_PATH
.
.
/usr/lib64-nvidia

所以现在,我想将 LD_LIBRARY_PATH 更改为包含 libgsl.so.25 的文件夹,即 /content/lib。从 gnu 文档 (https://www.gnu.org/software/gsl/doc/html/usage.html#f4) 中,您可以按如下方式更改 LD_LIBRARY_PATH;

!LD_LIBRARY_PATH=/content/lib
!export LD_LIBRARY_PATH

但是,这似乎并没有真正改变 LD_LIBRARY_PATH(即;当我 !echo 时返回相同的原始路径)。此外,当我尝试运行我的代码时,我收到了同样的错误消息,即找不到 libgsl.so.25。

!echo $LD_LIBRARY_PATH
.
.
/usr/lib64-nvidia

谁能看到我错过了什么?怎样才能真正改变 LD_LIBRARY_PATH?

【问题讨论】:

  • 您粘贴的命令假定您在单个 shell 中工作。我不认为 Colab 在同一个 shell 中运行每个单元。
  • @Botje 我并没有真正遵循 - 你说如果我运行 !LD_LIBRARY_PATH="/content/bin" !export LD_LIBRARY_PATH !echo $LD_LIBRARY_PATH 一起在同一个块中应该可以解决问题?
  • 不,我是说它不起作用,因为每个!... 行都在单独的shell中执行。
  • 嗯..好的,我有什么选择吗?
  • 如果您自己编译 C++ 代码,您不能将其 dynamic RPATH 设置为像 /content/lib 这样的静态目录或使用 $ORIGIN/../lib 等相对于它的位置吗?跨度>

标签: c++ shell environment-variables google-colaboratory gsl


【解决方案1】:

对于寻找此解决方案的任何人,请使用 os.environ

导入操作系统 os.environ['LD_LIBRARY_PATH']='/path/to/libgsl.so.25'

【讨论】:

    猜你喜欢
    • 2018-10-09
    • 1970-01-01
    • 2019-05-16
    • 2019-07-25
    • 2018-11-07
    • 1970-01-01
    • 2021-10-24
    • 1970-01-01
    • 2015-08-03
    相关资源
    最近更新 更多