列出包的依赖关系,不管它是如何加载或安装的
List the dependencies of a package regardless of how it is loaded or installed
我正在寻找一种巧妙的方法来以编程方式获取包的 Imports:
和 Depends:
包。诀窍是无论包是否为
,该方法都应该有效
- 已安装或刚刚加载
devtools::load_all()
,或
- 已附加或仅可通过命名空间使用。
所需功能:
package_deps("dplyr")
## [1] "assertthat" "bindrcpp" "glue" "magrittr" "methods" "pkgconfig"
## [7] "rlang" "R6" "Rcpp" "tibble" "utils"
注意版本号都被去掉了。
我正在写这个 post 因为它看起来应该已经存在了。 (毕竟,install.packages()
需要类似的功能。)我宁愿不必自己管理所有特殊情况。
我维护的 pacman 包是这样做的:
if (!require("pacman")) install.packages("pacman")
pacman::p_depends(dplyr)
$Imports
[1] "assertthat" "bindrcpp" "glue" "magrittr" "methods"
[6] "pkgconfig" "rlang" "R6" "Rcpp" "tibble"
[11] "utils"
$LinkingTo
[1] "Rcpp" "BH" "bindrcpp" "plogr"
$Suggests
[1] "bit64" "covr" "dbplyr" "dtplyr"
[5] "DBI" "ggplot2" "hms" "knitr"
[9] "Lahman" "mgcv" "microbenchmark" "nycflights13"
[13] "rmarkdown" "RMySQL" "RPostgreSQL" "RSQLite"
[17] "testthat" "withr"
我正在寻找一种巧妙的方法来以编程方式获取包的 Imports:
和 Depends:
包。诀窍是无论包是否为
- 已安装或刚刚加载
devtools::load_all()
,或 - 已附加或仅可通过命名空间使用。
所需功能:
package_deps("dplyr")
## [1] "assertthat" "bindrcpp" "glue" "magrittr" "methods" "pkgconfig"
## [7] "rlang" "R6" "Rcpp" "tibble" "utils"
注意版本号都被去掉了。
我正在写这个 post 因为它看起来应该已经存在了。 (毕竟,install.packages()
需要类似的功能。)我宁愿不必自己管理所有特殊情况。
我维护的 pacman 包是这样做的:
if (!require("pacman")) install.packages("pacman")
pacman::p_depends(dplyr)
$Imports
[1] "assertthat" "bindrcpp" "glue" "magrittr" "methods"
[6] "pkgconfig" "rlang" "R6" "Rcpp" "tibble"
[11] "utils"
$LinkingTo
[1] "Rcpp" "BH" "bindrcpp" "plogr"
$Suggests
[1] "bit64" "covr" "dbplyr" "dtplyr"
[5] "DBI" "ggplot2" "hms" "knitr"
[9] "Lahman" "mgcv" "microbenchmark" "nycflights13"
[13] "rmarkdown" "RMySQL" "RPostgreSQL" "RSQLite"
[17] "testthat" "withr"