命名空间无法在R中卸载

时间:2014-05-10 00:05:37

标签: r namespaces onunload

我无法卸载我在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)
}

1 个答案:

答案 0 :(得分:1)

我成功使用的功能是unloadNamespace。似乎library.dynam.unload旨在删除DLL,但我不清楚它是否会删除其余的包。