You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 22.04 Docker中install.packages安装R包提示对象未找到

Docker中R包安装报错的原因与解决方法

错误原因

报错提示object 'readxl' not found,核心问题是Docker RUN命令的引号解析错误:

  • 原命令外层用双引号包裹R代码,内层包名也使用双引号但未做转义处理。
  • Shell解析命令时会去掉内层未转义的双引号,导致R收到的代码里包名没有引号,被当作变量而非字符串处理,自然找不到对应的对象。

解决方法

两种修正方式任选其一即可:

方式1:内层改用单引号

将包名的双引号替换为单引号,避免和外层双引号冲突:

RUN R -e "install.packages(c('readxl','zoo','plotly','RcppRoll','shiny','tidyverse','shinyWidgets','shinythemes','metR','writexl','shinydashboard','lubridate','sjmisc','DBI','dplyr','dbplyr','odbc'), repos='https://cloud.r-project.org/')"

方式2:转义内层双引号

对内层双引号添加转义符\,确保Shell解析时保留引号:

RUN R -e "install.packages(c(\"readxl\",\"zoo\",\"plotly\",\"RcppRoll\",\"shiny\",\"tidyverse\",\"shinyWidgets\",\"shinythemes\",\"metR\",\"writexl\",\"shinydashboard\",\"lubridate\",\"sjmisc\",\"DBI\",\"dplyr\",\"dbplyr\",\"odbc\"), repos='https://cloud.r-project.org/')"

非Docker环境正常的原因

非Docker环境下直接在R控制台运行时,代码无需经过Shell的引号解析步骤,你传入的是带正确引号的内容,R能直接识别包名为字符串,因此运行正常。

内容的提问来源于stack exchange,提问作者Friedbert

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 02:00:34