And*_*eas 5 namespaces export r devtools package
我的R包使用内部变量x.如果我加载包(我只尝试使用devtools::load_all),然后x没有出现在ls()列表中,但它确实有一个值.我怎么能避免这个?
我很好,用户可以使用myPackage::x但不是简单地访问变量x.
该load_all函数有一个export_all参数.
从 ?load_all
如果为TRUE(默认值),则导出所有对象.如果为FALSE,则仅导出在NAMESPACE文件中列为导出的对象.
所以,试着export_all=FALSE在你的load_all电话中使用.
首先尝试构建软件包,然后检查问题是否仍然存在。包的导出在NAMESPACE文件中定义。使用时devtools::load_all,不会加载名称空间(请参见此处)。在手册Writing R扩展中阅读有关此内容和构建软件包的更多信息。
您可能在NAMESPACE文件中使用默认的导出模式。检查它在您的包裹,并且是否看起来像这样:
exportPattern("^[^\\.]")
Run Code Online (Sandbox Code Playgroud)
然后,程序包将从名称空间中不以点开头的所有内容导出。因此,您可以调用它.x,也可以将其更改exportPattern()为例如...
export(myfun1, myfun2)
Run Code Online (Sandbox Code Playgroud)
导出功能myfun1并myfun2从包中导出。通过明确定义要导出的内容,可以避免在不需要时可用的内容。