社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

从Github安装r packge-“”在当前工作目录中不存在

Kevin • 7 年前 • 2148 次点击  

我已经建立了一个新的包,它在GitHub上托管在 github.com/kevinwolz/hisafer .

我正在尝试通过devtools::install_github()安装该包,但我遇到了一个错误。帮助?

>install_github("kevinwolz/hisafer")

Downloading GitHub repo kevinwolz/hisafer@master
from URL https://api.github.com/repos/kevinwolz/hisafer/zipball/master
Installing hisafer

[这里,5个包依赖项(dplyr、tidyr、purr、ggplot2、lubridate)自动安装成功,但我遗漏了文本]

"C:/Users/wolzkevi/DOCUME~1/R/R-34~1.3/bin/x64/R" --no-site-file --no-environ --no-save  \
  --no-restore --quiet CMD INSTALL  \
  "C:/Users/wolzkevi/AppData/Local/Temp/Rtmpg5OyD6/devtools28843ed4c0a/kevinwolz-hisafer-bf69883"  \
  --library="C:/Users/wolzkevi/Documents/R/R-3.4.3/library" --install-tests 

* installing *source* package 'hisafer' ...
** R
** inst
** preparing package for lazy loading
Error : '' does not exist in current working directory ('C:/Users/wolzkevi/AppData/Local/Temp/Rtmpg5OyD6/devtools28843ed4c0a/kevinwolz-hisafer-bf69883').
Error : unable to load R code in package 'hisafer'
ERROR: lazy loading failed for package 'hisafer'
* removing 'C:/Users/wolzkevi/Documents/R/R-3.4.3/library/hisafer'
In R CMD INSTALL
Installation failed: Command failed (1)

这里的关键错误似乎是“错误:当前工作目录中不存在“””。有人知道为什么会这样吗?我的包的构建/设置方式是否导致了问题?如果不是从GitHub下载,我可以从源代码安装包,这样我就相信GitHub进程中发生了一些奇怪的事情。

会话信息:

R version 3.4.3 (2017-11-30)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)

Matrix products: default

locale:
[1] LC_COLLATE=French_France.1252  LC_CTYPE=French_France.1252   
[3] LC_MONETARY=French_France.1252 LC_NUMERIC=C                  
[5] LC_TIME=French_France.1252    

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

other attached packages:
[1] devtools_1.13.4

loaded via a namespace (and not attached):
 [1] httr_1.3.1     compiler_3.4.3 R6_2.2.2       tools_3.4.3    withr_2.1.1    curl_3.1      
 [7] memoise_1.1.0  knitr_1.19     git2r_0.21.0   digest_0.6.15 
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/30520
文章 [ 1 ]  |  最新文章 7 年前
duckmayr
Reply   •   1 楼
duckmayr    7 年前

问题在于 R/utils.R ,您尝试从中读取文件 inst/extdata 不存在(来自第36行和第37行):

INPUT.DEFS  <- readr::read_delim(system.file("extdata", "input_defs.txt",  package = "hisafer"), "\t", col_types = readr::cols())
OUTPUT.DEFS <- dplyr::arrange(readr::read_delim(system.file("extdata", "output_defs.txt", package = "hisafer"), "\t", col_types = readr::cols()), profile, name)

检查 内部/外部数据 也不会给你看 input_defs.txt 也不 output_defs.txt 有。

我怎么知道的?

我跑

devtools::load_all("hisafer/")

也会产生错误

错误:当前工作目录中不存在“”。

但允许您显示信息性的回溯:

13.stop("'", path, "' does not exist", if (!is_absolute_path(path)) paste0(" in current working directory ('", 
    getwd(), "')"), ".", call. = FALSE) 
12.check_path(path) 
11.standardise_path(file) 
10.read_delimited(file, tokenizer, col_names = col_names, col_types = col_types, 
    locale = locale, skip = skip, comment = comment, n_max = n_max, 
    guess_max = guess_max, progress = progress) 
9.readr::read_delim(system.file("extdata", "input_defs.txt", package = "hisafer"), 
    "\t", col_types = readr::cols()) at utils.R#36
8.eval(exprs[i], envir) 
7.eval(exprs[i], envir) 
6.source_one(file, envir = envir) 
5.source_many(paths, env) 
4.force(code) 
3.withr_with_dir(file.path(pkg$path), source_many(paths, env)) 
2.load_code(pkg) 
1.devtools::load_all("hisafer/") 

注意回溯中的9号,它不仅显示了有问题的代码,而且还帮助显示了它来自哪个文件以及在哪个行上。

问题的根源:你的 .gitignore

在你 吉蒂格诺 你有台词

inst/extdata/
inst/extdata/*

这意味着中的所有文件和子文件夹 inst/extdata/ 不会被跟踪,因此当用户尝试从GitHub安装时,他们不会获得 extdata/ 它们需要的文件才能使您的包正常工作。

作为旁注,即使用户下载您的回购并手动添加 输入输出 输出命令 ,由于同样的原因,它们没有您希望它们拥有的其他模板目录,因此构建vignette会导致安装错误。