2014-05-10 4 views
2
내가 R. 내가 그렇게하려고 할 때마다 생성 된 패키지의 네임 스페이스를 언로드하는 데 문제가 있어요

을에서 언로드 실패 위의 오류가 발생한 후에 traceback()을 호출하십시오.네임 스페이스 나는 다음과 같은 오류받을 R

>4: .mergeMethodsTable(generic, mtable, get(tname, envir = env), attach) 
3: .updateMethodsInTable(fdef, where, attach) 
2: methods:::cacheMetaData(ns, FALSE, ns) 
1: unloadNamespace("coleXcms") 

나는 솔직히 내가 생각할 수있는 모든 것을 시도했지만 아무 소용이 없다. 나는 R에 매우 익숙해 누군가가 나를 도울 수 있기를 바랬습니다.

또한 유용한 지 모르겠지만 내 패키지의 언로드 후크입니다.

.onUnload <- function(libpath) { 
    mzR:::rampCloseAll() 
    library.dynam.unload("coleXcms", libpath) 
} 
+0

오류가 발생한 후에'traceback()'의 결과를 제공하는 것이 도움이 될 수 있습니다. –

+0

추적 결과를 보여주기 위해 업데이트 된 게시물 @MartinMorgan – Cole

+0

미안하지만, 콜, 거리에서 알아 내기가 너무 어렵습니다. 패키지 (또는 그 최소 버전)가 일부 문제 해결을 가능하게하는 공공 장소에 있다면 ... –

답변

1

내가 성공을 사용한 기능은 unloadNamespace입니다 (내 패키지의 이름은 coleXcms입니다). library.dynam.unload은 DLL을 제거하도록 설계된 것으로 보이지만 나머지 패키지는 제거된다는 것이 확실하지 않습니다.

+0

위의 오류는 어떤 시점에서 unloadNamespace에 대한 호출 결과가 나오는 detatch (package : coleXcms, unload = T)를 호출 할 때 발생합니다. 틀 렸으면 고쳐줘. – Cole

+0

콘솔에'detach'라고 입력하여 이해를 확인할 수 있습니다. R-help 자료실에는'detach'와'unloadNamepsace'의 효과를 구별하는 토론이 있다고 생각합니다. 확인되지 않은 메모리는'detach'가 실패 할 때'unloadNamespace'가 성공할 수 있다는 것입니다 ... 여기에 제가 그 느낌을 얻을 수있는 곳이 있습니다 : http://article.gmane.org/gmane.comp.lang.r.general/111050/match = unloadnamespace + detach 나는 왜 설명 할 수 없지만'detach'가 실패 할 때'unloadNamespace'가 성공했다는 것을 경험으로부터보고 할 수 있습니다. –

+0

unloadNamespace를 호출 할 때 위와 같은 오류가 발생합니다 ... – Cole

관련 문제