Packrat 破坏 R 功能的问题
Trouble with packrat corrupting R functioning
我在某个时候安装了软件包 packrat
,也许用过一次,然后继续我的生活。
然而,尽管几个月没有加载它,它仍然对我的常规 R 使用造成麻烦。
似乎是随机的,我在 RStudio 中的 R 会话会在某些操作中失败并出现错误,尤其是包安装。这是最新的错误消息(在 运行ning parallel::makeCluster(parallel::detectCores())
:
之后
Error in file(filename, "r", encoding = encoding)
: cannot open the
connection
Calls: source -> file
In addition: Warning message:
In
file(filename, "r", encoding = encoding)
: cannot open file
'packrat/init.R': No such file or directory
Execution halted
我检查了 .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
的一些残留文件?
根据@BondedDust 的建议,通过进一步的试验和错误,我似乎终于解决了这个问题。之前曾尝试在我工作的特定工作目录中使用 packrat
,尽管后来卸载了 packrat
.
,但似乎留下了一些痕迹
特别是 packrat
edits your local .Rprofile
(@zerweck 和 @snaut 的原始信用),在该目录中的 R 启动时 source()
d。
如果您使用 .Rprofile
来存储一些本地配置,您应该编辑文件并删除 packrat
行(或任何您不认识的行);否则,您只需删除该文件即可将您的项目恢复到预期的状态。
检查您的 HOME 目录是否有意外的 .Rprofile。
如果您尝试在主页中 packrat::init(),Packrat 可能已将其放在这里。
install.package() with packrat 在 运行 时查找 .Rprofile。我观察到的行为使 HOME .Rprofile 优先于 getwd() ,导致
cannot open file 'packrat/init.R': No such file or directory
我在某个时候安装了软件包 packrat
,也许用过一次,然后继续我的生活。
然而,尽管几个月没有加载它,它仍然对我的常规 R 使用造成麻烦。
似乎是随机的,我在 RStudio 中的 R 会话会在某些操作中失败并出现错误,尤其是包安装。这是最新的错误消息(在 运行ning parallel::makeCluster(parallel::detectCores())
:
Error in
file(filename, "r", encoding = encoding)
: cannot open the connectionCalls: source -> file
In addition: Warning message:
In
file(filename, "r", encoding = encoding)
: cannot open file 'packrat/init.R': No such file or directoryExecution halted
我检查了 .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
的一些残留文件?
根据@BondedDust 的建议,通过进一步的试验和错误,我似乎终于解决了这个问题。之前曾尝试在我工作的特定工作目录中使用 packrat
,尽管后来卸载了 packrat
.
特别是 packrat
edits your local .Rprofile
(@zerweck 和 @snaut 的原始信用),在该目录中的 R 启动时 source()
d。
如果您使用 .Rprofile
来存储一些本地配置,您应该编辑文件并删除 packrat
行(或任何您不认识的行);否则,您只需删除该文件即可将您的项目恢复到预期的状态。
检查您的 HOME 目录是否有意外的 .Rprofile。
如果您尝试在主页中 packrat::init(),Packrat 可能已将其放在这里。
install.package() with packrat 在 运行 时查找 .Rprofile。我观察到的行为使 HOME .Rprofile 优先于 getwd() ,导致
cannot open file 'packrat/init.R': No such file or directory