【问题标题】:Jupyter R kernel crashesJupyter R 内核崩溃
【发布时间】:2016-01-17 16:17:54
【问题描述】:

我刚刚从 Anaconda 安装了 R Essentials(我的计算机上已经安装了 R),以便在 Jupyter 中使用 R。

现在,当我在 Jupyter 中打开一个新的 R 笔记本时,几秒钟后(甚至没有输入任何内容)内核崩溃并需要重新启动。

我在终端上得到的错误是

[I 12:30:36.297 NotebookApp] Kernel started: dd5dd612-2c8f-4235-9619-1cf5a46b3e89

IRkernel::main() dyn.load(file, DLLpath = DLLpath, ...) 中的错误: 无法加载共享对象'/home/alberto/R/x86_64-pc-linux-gnu-library/3.2/stringi/libs/stringi.so': /home/alberto/anaconda3/lib/R/library/rzmq/libs/../../../../libstdc++.so.6:版本CXXABI_1.3.8' not found (required by /home/alberto/R/x86_64-pc-linux-gnu-library/3.2/stringi/libs/stringi.so) Calls: :: ... tryCatch -> tryCatchList -> tryCatchOne -> <Anonymous> Execution halted [I 12:30:39.299 NotebookApp] KernelRestarter: restarting kernel (1/5) IRkernel::main() Error in dyn.load(file, DLLpath = DLLpath, ...) : unable to load shared object '/home/alberto/R/x86_64-pc-linux-gnu-library/3.2/stringi/libs/stringi.so': /home/alberto/anaconda3/lib/R/library/rzmq/libs/../../../../libstdc++.so.6: versionCXXABI_1.3.8' 未找到(/home 需要/alberto/R/x86_64-pc-linux-gnu-library/3.2/stringi/libs/stringi.so) 调用: :: ... tryCatch -> tryCatchList -> tryCatchOne -> 执行停止 [I 12:30:42.309 NotebookApp] KernelRestarter:重新启动内核 (2/5) IRkernel::main() dyn.load(file, DLLpath = DLLpath, ...) 中的错误: 无法加载共享对象'/home/alberto/R/x86_64-pc-linux-gnu-library/3.2/stringi/libs/stringi.so': /home/alberto/anaconda3/lib/R/library/rzmq/libs/../../../../libstdc++.so.6:版本CXXABI_1.3.8' not found (required by /home/alberto/R/x86_64-pc-linux-gnu-library/3.2/stringi/libs/stringi.so) Calls: :: ... tryCatch -> tryCatchList -> tryCatchOne -> <Anonymous> Execution halted [I 12:30:45.315 NotebookApp] KernelRestarter: restarting kernel (3/5) IRkernel::main() Error in dyn.load(file, DLLpath = DLLpath, ...) : unable to load shared object '/home/alberto/R/x86_64-pc-linux-gnu-library/3.2/stringi/libs/stringi.so': /home/alberto/anaconda3/lib/R/library/rzmq/libs/../../../../libstdc++.so.6: versionCXXABI_1.3.8' 未找到(/home 需要/alberto/R/x86_64-pc-linux-gnu-library/3.2/stringi/libs/stringi.so) 调用: :: ... tryCatch -> tryCatchList -> tryCatchOne -> 执行停止 [W 12:30:46.485 NotebookApp] 等待来自 dd5dd612-2c8f-4235-9619-1cf5a46b3e89 的 kernel_info 回复超时 [I 12:30:48.322 NotebookApp] KernelRestarter:重新启动内核 (4/5) 警告:root:kernel dd5dd612-2c8f-4235-9619-1cf5a46b3e89 重新启动 IRkernel::main() dyn.load(file, DLLpath = DLLpath, ...) 中的错误: 无法加载共享对象'/home/alberto/R/x86_64-pc-linux-gnu-library/3.2/stringi/libs/stringi.so': /home/alberto/anaconda3/lib/R/library/rzmq/libs/../../../../libstdc++.so.6:找不到版本“CXXABI_1.3.8”(/home/alberto 需要/R/x86_64-pc-linux-gnu-library/3.2/stringi/libs/stringi.so) 调用: :: ... tryCatch -> tryCatchList -> tryCatchOne -> 执行停止 [W 12:30:51.329 NotebookApp] KernelRestarter:重启失败 [W 12:30:51.329 NotebookApp] 内核 dd5dd612-2c8f-4235-9619-1cf5a46b3e89 死亡,从地图中删除。 错误:root:kernel dd5dd612-2c8f-4235-9619-1cf5a46b3e89 重启失败! [W 12:30:51.361 NotebookApp] 内核在会话前被删除

我猜这可能是共享库的问题,但我不知道如何解决它...

【问题讨论】:

    标签: r linux ipython-notebook anaconda jupyter


    【解决方案1】:

    (仅限临时修复)

    查看此讨论:https://groups.google.com/a/continuum.io/forum/#!topic/conda/nqPfPGYP--g

    我能够使用建议的临时修复让我的内核运行:

    $ conda remove gcc libgcc

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题。问题似乎是 Jupyter 中的 R 内核正在查看具有旧版本 ibstdc++.so.6 的不同位置。

      以下步骤对我有用(以 root 身份登录,因为 R 和 python 是作为 root 安装的):

      cp -fv /usr/local/lib64/libstdc++* /lib64/
      cd /lib64
      ln -sfT libstdc++.so.6.0.21 libstdc++.so.6
      

      解释:

      [root@SERVER ~]# strings /usr/local/lib64/libstdc++.so.6 | grep CXXABI_1.3
      CXXABI_1.3
      CXXABI_1.3.1
      CXXABI_1.3.2
      CXXABI_1.3.3
      CXXABI_1.3.4
      CXXABI_1.3.5
      CXXABI_1.3.6
      CXXABI_1.3.7
      CXXABI_1.3.8
      CXXABI_1.3.9
      CXXABI_1.3
      CXXABI_1.3.2
      CXXABI_1.3.6
      CXXABI_1.3.9
      CXXABI_1.3.1
      CXXABI_1.3.5
      CXXABI_1.3.8
      CXXABI_1.3.4
      CXXABI_1.3.7
      CXXABI_1.3.3
      [root@SERVER ~]# strings /lib64/libstdc++.so.6 | grep CXXABI_1.3
      CXXABI_1.3
      CXXABI_1.3.1
      CXXABI_1.3.2
      CXXABI_1.3.3
      CXXABI_1.3.4
      CXXABI_1.3.5
      CXXABI_1.3.6
      CXXABI_1.3.7
      

      我们可以看到 /lib64/libstdc++.so.6 指向比 /usr/local/lib64/libstdc++.so.6 更旧的版本

      [root@SERVER ~]# ls /lib64/libstdc++.so.* -lrt
      -rwxr-xr-x 1 root root   830776 Mar  5  2015 /lib64/libstdc++.so.5.0.7
      lrwxrwxrwx 1 root root       18 Apr 29  2016 /lib64/libstdc++.so.5 -> libstdc++.so.5.0.7
      lrwxrwxrwx 1 root root       19 Jan 27 01:46 /lib64/libstdc++.so.6 -> libstdc++.so.6.0.19
      -rwxr-xr-x 1 root root 11103508 Feb  3 21:41 /lib64/libstdc++.so.6.0.19
      -rwxr-xr-x 1 root root 11103508 Feb  3 21:41 /lib64/libstdc++.so.6.0.21
      -rw-r--r-- 1 root root     2397 Feb  3 21:41 /lib64/libstdc++.so.6.0.21-gdb.py
      [root@SERVER ~]# ls /usr/local/lib64/libstdc++* -lrt
      -rwxr-xr-x 1 root root      905 Jun 15  2016 /usr/local/lib64/libstdc++fs.la
      -rw-r--r-- 1 root root 10964026 Jun 15  2016 /usr/local/lib64/libstdc++fs.a
      -rwxr-xr-x 1 root root 11103508 Jun 15  2016 /usr/local/lib64/libstdc++.so.6.0.21
      lrwxrwxrwx 1 root root       19 Jun 15  2016 /usr/local/lib64/libstdc++.so.6 -> libstdc++.so.6.0.21
      lrwxrwxrwx 1 root root       19 Jun 15  2016 /usr/local/lib64/libstdc++.so -> libstdc++.so.6.0.21
      -rwxr-xr-x 1 root root      965 Jun 15  2016 /usr/local/lib64/libstdc++.la
      -rw-r--r-- 1 root root 28847974 Jun 15  2016 /usr/local/lib64/libstdc++.a
      

      所以,我将所有 libstd++ 文件从 /usr/local/lib64 复制到 /lib64,然后将软链接更改为指向新版本。

      【讨论】:

        猜你喜欢
        • 2018-06-16
        • 2019-01-17
        • 1970-01-01
        • 2019-04-23
        • 1970-01-01
        • 1970-01-01
        • 2020-02-24
        • 2020-01-25
        • 2019-03-07
        相关资源
        最近更新 更多