R包开发中调用use_import_from报错非导出对象该如何解决
核心原因
你当前使用的usethis 2.0.1版本中,use_import_from属于内部未导出函数,未纳入对外暴露的命名空间,该函数直到usethis v2.1.0版本才被正式导出开放使用,这是你调用时触发报错的根本原因。
解决方案
- 方案1:升级usethis到最新稳定版
运行以下命令升级usethis,升级完成后即可正常调用该函数:install.packages("usethis") # 升级后调用 usethis::use_import_from("stats", "runif") - 方案2:直接调用当前版本的未导出函数
如果你暂时不想升级usethis版本,可以使用三个冒号调用内部未导出函数,即可触发内置的校验逻辑:
注意:未导出函数属于包的内部接口,不同版本的实现逻辑可能发生变动,稳定性低于正式导出的公开函数usethis:::use_import_from("stats", "runif") - 方案3:手动实现同等效果
你可以先通过usethis::use_package("stats")完成依赖包的基础校验和DESCRIPTION文件更新,再手动在NAMESPACE文件中添加importFrom(stats, runif)行即可,效果和调用函数一致。
内容的提问来源于stack exchange,提问作者Comevussor
相关产品推荐
相关产品推荐

