我在卸载在R中创建的包的 namespace 时遇到了麻烦。每次尝试这样做时,都会出现以下错误:
.mergeMethodsTable(通用,mtable,get(tname,envir = env),
试图从基本类(“环境”)的对象获取插槽“defined”,而没有
插槽
调用:unloadNamespace ...-> .updateMethodsInTable-> .mergeMethodsTable
这是发生上述错误后调用traceback()的结果。
>4: .mergeMethodsTable(generic, mtable, get(tname, envir = env), attach)
3: .updateMethodsInTable(fdef, where, attach)
2: methods:::cacheMetaData(ns, FALSE, ns)
1: unloadNamespace("coleXcms")
老实说,我已尽我所能,但无济于事。我对R很陌生,所以我希望有人可以帮助我。
另外,不知道这是否有用,但这是我的包裹的卸货钩。 (我的包裹的名字是coleXcms)
.onUnload <- function(libpath) {
mzR:::rampCloseAll()
library.dynam.unload("coleXcms", libpath)
}
最佳答案
我成功使用的函数是unloadNamespace
。看来library.dynam.unload
旨在删除DLL,但我不清楚它是否会删除程序包的其余部分。
关于r - 命名空间无法在R中卸载,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23575767/