如何获取通过devtools::load_all加载的开发版R包的命名空间?
获取开发版R包的命名空间方法
已安装R包的命名空间获取方式
对于已安装完成的R包,我们可以通过以下代码获取其命名空间:
base::getNamespace('stats') base::getNamespace('MASS')
开发版R包的疑问
如果是通过devtools::load_all(".")加载的本地自研开发版R包,有没有功能类似的函数可以获取它的命名空间?我们尝试过以下写法,但无法生效:
base::getNamespace('.') # Error: there is no package called ‘.’
可行方法总结
经过讨论,整理出以下有效实现方式:
- 推荐方法:借助
pkgload包获取包名后调用getNamespacegetNamespace(pkgload::pkg_name('.')) # works! - 备选方法:若包的目录名与包名一致,可直接使用目录名
getNamespace(basename(normalizePath('.'))) # works, if directory name is the same as package name - 避坑提示:直接传入规范化路径会报错
getNamespace(normalizePath('.')) # error
内容的提问来源于stack exchange,提问作者tingtingzhan
相关产品推荐
相关产品推荐

