【问题标题】:Trouble with packrat corrupting R functioningPackrat 破坏 R 功能的问题
【发布时间】:2015-11-27 03:05:22
【问题描述】:

我在某个时候安装了包packrat,也许用过一次,然后继续我的生活。

然而,尽管几个月没有加载它,但它仍然对我的常规 R 使用造成麻烦。

似乎随机,我在 RStudio 中的 R 会话在某些操作(尤其是包安装)时会因错误而失败。这是最新的错误消息(运行 parallel::makeCluster(parallel::detectCores()):

file(filename, "r", encoding = encoding) 中的错误:无法打开 连接

调用:源 -> 文件

另外:警告信息:

在 file(filename, "r", encoding = encoding) : 无法打开文件 'packrat/init.R': 没有这样的文件或目录

执行停止

我检查了.libPaths() 上的所有文件夹,我什至没有安装packrat。为什么R 还在尝试执行packrat 操作?我该如何阻止呢?

到目前为止,我的胶带解决方案是简单地关闭并重新打开 RStudio,这对于解决软件包安装问题很有效。

但是,我似乎无法在 只有一个 .R 脚本中解决 makeCluster(detectCores()) 的问题。它在另一个项目的另一个脚本中运行良好。

背景:

sessionInfo()
# R version 3.2.2 (2015-08-14)
# Platform: x86_64-pc-linux-gnu (64-bit)
# Running under: Ubuntu 14.04.2 LTS

# locale:
#  [1] LC_CTYPE=en_US.UTF-8          LC_NUMERIC=C                  LC_TIME=en_US.UTF-8          
#  [4] LC_COLLATE=en_US.UTF-8        LC_MONETARY=en_US.UTF-8       LC_MESSAGES=en_US.UTF-8      
#  [7] LC_PAPER=en_US.UTF-8          LC_NAME=en_US.UTF-8           LC_ADDRESS=en_US.UTF-8       
# [10] LC_TELEPHONE=en_US.UTF-8      LC_MEASUREMENT=en_US.UTF-8    LC_IDENTIFICATION=en_US.UTF-8

# attached base packages:
# [1] parallel  stats     graphics  grDevices utils     datasets  methods   base     

# other attached packages:
#  [1] doParallel_1.0.8 iterators_1.0.7  foreach_1.4.2    geosphere_1.4-3  xlsx_0.5.7       xlsxjars_0.6.1  
#  [7] rJava_0.9-6      xtable_1.7-4     sandwich_2.3-3   texreg_1.35      maptools_0.8-36  sp_1.1-1        
# [13] ggmap_2.5.2      ggplot2_1.0.1    data.table_1.9.5

# loaded via a namespace (and not attached):
#  [1] Rcpp_0.11.6         plyr_1.8.3          tools_3.2.2         digest_0.6.8        gtable_0.1.2       
#  [6] lattice_0.20-33     png_0.1-7           mapproj_1.2-4       proto_0.3-10        stringr_1.0.0      
# [11] RgoogleMaps_1.2.0.7 maps_2.3-11         grid_3.2.2          jpeg_0.1-8          foreign_0.8-66     
# [16] RJSONIO_1.3-0       reshape2_1.4.1      magrittr_1.5        codetools_0.2-11    scales_0.2.5       
# [21] MASS_7.3-43         colorspace_1.2-6    stringi_0.5-9003    munsell_0.4.2       chron_2.3-47       
# [26] rjson_0.2.15        zoo_1.7-12 

更新 1:

安装packrat 无效。运行packrat::init() 导致在完成之前出错;没有任何改变。

更新 2:

我通过确定导致问题的工作目录来隔离问题。我正在使用的工作目录中的什么可能导致问题?之前在此目录中运行过packrat 的一些残留文件?

【问题讨论】:

  • 警告(但不是错误)是说它 not 可用,这意味着您的程序之一期望它可用。看看谷歌的点击量,它似乎是 RStudio 开发人员打算实施的“增强”。
  • @BondedDust 谢谢;那么安装packrat 应该可以解决问题吗?
  • 嗯,这就是我会尝试的,但我不是 RStudio 用户。
  • @BondedDust 谢谢。对于第 22 个问题如何处理:运行 install.packages("packrat") smh 时出现 packrat 错误

标签: r package rstudio packrat


【解决方案1】:

鉴于@BondedDust 的刺激,通过进一步的试验和错误,我终于似乎解决了这个问题。尽管后来卸载了packrat,但之前尝试在我正在工作的特定工作目录中使用packrat 似乎留下了一些痕迹。

特别是packrat edits your local .Rprofile(原始信用归功于@zerweck 和@snaut),即该目录中R 启动时的source()d。

如果您使用.Rprofile 来存储一些本地配置,您应该编辑文件并删除packrat 行(或任何您不认识的行);否则,您应该删除该文件以恢复您的项目按预期工作。

【讨论】:

    【解决方案2】:

    检查您的 HOME 目录是否有无意的 .Rprofile。

    如果您尝试在 HOME 中使用 packrat::init(),Packrat 可能已将其放在这里。

    install.package() 与 packrat 在运行时查找 .Rprofile。我观察到的行为将 HOME .Rprofile 优先于 getwd() ,导致

    cannot open file 'packrat/init.R': No such file or directory
    

    【讨论】:

    • 这正是我在新会话中意外初始化 Packrat 后发生的事情。从您的~/.Rprofile 中删除有问题的source 行。
    猜你喜欢
    • 2011-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-22
    • 2023-03-07
    • 1970-01-01
    相关资源
    最近更新 更多