【问题标题】:R, Python, rpy2 and drc package in DockerDocker 中的 R、Python、rpy2 和 drc 包
【发布时间】:2020-05-28 04:39:48
【问题描述】:

我正在尝试构建一个 docker 映像来执行一个 python 进程,该进程调用(使用 rpy2)来自 R 的包 drc

我正在使用 amazonlinux docker 映像并使用 drc 我有以下几行通过 conda 安装它:

RUN conda install -c r rpy2=2.9.4 --yes
RUN conda install -c conda-forge r-drc=3.0_1 --yes

通过图像构建,我进入一个正在运行的容器:

docker run -it --entrypoint bash mydockerName

当我通过R 进入 R 时,它会抛出下一个错误:

Error: package or namespace load failed for 'utils':
 .onLoad failed in loadNamespace() for 'utils', details:
  call: system(paste(which, shQuote(names[i])), intern = TRUE, ignore.stderr = TRUE)
  error: error in running command
Error: package or namespace load failed for 'stats':
 .onLoad failed in loadNamespace() for 'utils', details:
  call: system(paste(which, shQuote(names[i])), intern = TRUE, ignore.stderr = TRUE)
  error: error in running command
During startup - Warning messages:
1: package 'utils' in options("defaultPackages") was not found
2: package 'stats' in options("defaultPackages") was not found

最近几天我一直在谷歌搜索,但我没有可能的解决方案......

非常感谢!

西维

【问题讨论】:

  • 我在使用 R 时遇到了类似的问题,但在不同的容器类型上。我怀疑您的 docker 映像中可能不存在“which”命令。对于 zsh,这是一个内置的,而其他 shell 期望它位于 /usr/bin 中。或者,它可能具有“which”,但找不到它期望的其他系统工具。到目前为止,我还无法弄清楚 R 在加载库时可以看到哪些系统工具,或者 utils 期望在系统上找到什么。

标签: python r docker conda rpy2


【解决方案1】:

rpy2 项目的图像可以构成一个起点。 conda 虽然没有被使用。 https://github.com/rpy2/rpy2-docker

如果需要conda,以jupyter项目管理的镜像为例。

【讨论】:

    【解决方案2】:

    我通过安装“which”修复了不同容器类型中的类似问题。这个包经常被 linux 环境忽略,因为有“更好的”替代品。但是,R 包编写者通常仍然依赖于“哪个”。所以弄清楚如何在你的容器中安装this,它可能会解决这个问题。

    【讨论】:

      猜你喜欢
      • 2018-07-26
      • 2012-07-18
      • 2014-06-14
      • 2018-12-30
      • 1970-01-01
      • 1970-01-01
      • 2019-10-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多