【问题标题】:Rcpp jupyter notebooksrcpp jupyter 笔记本
【发布时间】:2018-02-06 18:10:24
【问题描述】:

我已经使用这个命令在 R 控制台中安装了 Rcpp,直到现在通常用于安装包以在 jupyter 笔记本上运行:

install.packages('Rcpp', '/home/user/anaconda3/lib/R/library/')

然后在控制台中我这样做:

library(Rcpp)
evalCpp("2+2")

它可以工作,但是当我在 Jupyter 笔记本上做同样的事情时它不起作用,给我这个错误消息:

/home/tyatabe/anaconda3/bin/x86_64-conda_cos6-linux-gnu-c++ -I/home/tyatabe/anaconda3/lib/R/include -DNDEBUG -I'/home/tyatabe/anaconda3/lib/R/library/SimInf/include' -I"/home/tyatabe/anaconda3/lib/R/库/Rcpp/include"-I"/tmp/RtmpC4usUT/sourceCpp-x86_64-conda_cos6-linux-gnu-0.12.15"-D_FORTIFY_SOURCE=2 -O2 -I/home/tyatabe/anaconda3/include -fpic -O3 -mtune =native -march=native -Wno-unused-variable -Wno-unused-function -flto -ffat-lto-objects -Wno-unused-local-typedefs -Wno-ignored-attributes -Wno-deprecated-declarations -c file345f2e80a7c7。 cpp -o 文件345f2e80a7c7.o /home/tyatabe/anaconda3/lib/R/etc/Makeconf:167:目标配方 'file345f2e80a7c7.o' 失败 sourceCpp 中的错误(代码 = 代码,环境 = 环境, 重建 = 重建,cacheDir = cacheDir,:错误 1 ​​发生构建 共享库。追溯:

  1. evalCpp("2+2")
  2. cppFunction(代码,依赖 = 依赖,插件 = 插件,包括 = 包含,.env = env,重建 = 重建,cacheDir = cacheDir, 显示输出 = 显示输出,。详细 = 详细)
  3. sourceCpp(代码 = 代码,环境 = 环境,重建 = 重建,缓存目录 = 缓存目录,.showOutput = 显示输出,详细 = 详细)
  4. stop("错误 ", status, "发生构建共享库。")

警告:未找到为 R 构建 C++ 代码所需的工具。

请安装 GNU 开发工具,包括 C++ 编译器。

我在 64 位机器上运行 Ubuntu 16.04。

关于如何让 Rcpp 在 jupyter 上工作的任何想法?

谢谢,

多田

【问题讨论】:

    标签: r linux jupyter-notebook rcpp


    【解决方案1】:

    正如@DirkEddelbuettel 提到的...... Anaconda 在 Ubuntu 上并不理想......

    如果您真的想要进行此设置,最近有一个关于编译器和 Anaconda 的 Rcpp FAQ 条目...特别是,我们有:

    issue ticket#770的评论中 据说运行

    sh conda install gxx_linux-64
    

    在此环境中提供帮助,因为它安装了相应的 x86_64-conda_cos6-linux-gnu-c++ 编译器。

    【讨论】:

    • 做到了。谢谢@coatless!我会考虑离开 anaconda,因为它似乎不是最好的选择
    【解决方案2】:

    我通常建议不要混合使用 Ubuntu(一切按原样运行)和 Anaconda(有时会妨碍)。

    我的盒子上也使用了 Jupyter 笔记本。

    【讨论】:

    • 同意。除非你是 anaconda 的忠实粉丝,否则只需通过 pip 安装 jupyter。
    • apt-get。无法与 16.04 通话,但在 17.10 上,它看起来很好并且准备就绪。适用于两种 Python 风格。
    • 哦,对了,在 16.04 上它仍然被称为 ipython-notebook。我过去也用过。
    • 感谢@DirkEddelbuettel。我会考虑为我未来的项目退出 anaconda