我无法卸载我在R中创建的包的命名空间。每次我尝试这样做时都会出现以下错误:
.mergeMethodsTable中的错误(generic,mtable,get(tname,envir = env),: 试图从没有基本类(“环境”)的对象中“定义”槽 插槽
调用: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)
}
答案 0 :(得分:1)
我成功使用的功能是unloadNamespace
。似乎library.dynam.unload
旨在删除DLL,但我不清楚它是否会删除其余的包。