尝试使用devtools :: install()安装本地R包时“超出API速率限制”

问题描述 投票:6回答:1

包开发初学者在这里!

我第一次尝试将一些代码转换为本地R包。我使用usethis::create_package()创建了一个包,使用devtools::document()添加了文档。

现在,在玩了一段时间后,我尝试使用devtools::install()安装最新版本时遇到以下错误:

Error: HTTP error 403.
  API rate limit exceeded for [my IP]. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)

  Rate limit remaining: 0/60
  Rate limit reset at: 2019-03-18 16:32:05 UTC

  To increase your GitHub API rate limit
  - Use `usethis::browse_github_pat()` to create a Personal Access Token.
  - Use `usethis::edit_r_environ()` and add the token as `GITHUB_PAT`.

如果我使用devtools:install_local("my_folder_name"),问题仍然存在。真正令我困惑的是,我通过尝试安装位于本地文件夹中的软件包来达到GitHub速率限制。

我是否在软件包设置中出错,或者使用devtools::install()是否总是涉及GitHub API?有什么我可以改变以保持我的包的安装过程本地,从而避免速率限制问题?

编辑:我的描述文件引用其他包:

Depends: 
    R (>= 3.4.3),
    dplyr
Imports:
    RMariaDB,
    dbplyr,
    DBI,
    reshape2,
    RColorBrewer,
    knitr,
    kableExtra,
    scales,
    magrittr,
    DT,
    formattable,
    testthat,
    ggplot2,
    rmarkdown
r devtools roxygen2
1个回答
1
投票

似乎默认情况下,devtools::install()会在Depends文件中检查ImportsLinkingToDESCRIPTION下列出的依赖关系的所有包(请参阅devtools参考手册dependencies = NAhere选项的解释)。对于remotes::install_local()链接的devtools::install_local()也是如此。

解决此问题的方法是显式禁用检查包依赖关系:如果使用devtools::install("my_local_package", dependencies = FALSE),则不再需要连接到api.github.com。当您知道已经安装了必要的依赖项时,这样做是有意义的,当您对自己的代码进行R包装时就是这种情况。

(另外值得注意的是:devtools::install()中的默认选项需要互联网连接才能安装任何软件包,但通过设置dependencies = FALSE,也可以离线安装本地软件包!)

© www.soinside.com 2019 - 2024. All rights reserved.