【发布时间】:2018-08-01 06:37:49
【问题描述】:
我有一个复杂的 R Shiny 应用程序(由其他人开发)要调试,其中一个线索是,在其操作的某个时刻,它通过命名空间加载了一个 R 包(它恰好是 shinyjs,但这并不重要问题)。我已经找到并运行了对library() 和require() 的所有显式调用,并且在干净的会话shinyjs 中运行它们后not 出现在sessionInfo() 中。而如果我中断应用程序并运行 sessionInfo() 它确实会出现。因此,其他软件包之一必须在其“建议”字段中包含shinyjs,然后显式调用它。为了解决我的错误,我想找出应用程序的哪个部分正在执行此操作,它正在使用哪些功能,以及建议 shinyjs 的软件包。
在项目中没有明确使用字符串“shinyjs”,因此必须埋在应用程序使用的(许多)包之一中,例如shinyjs::some_function()。我的问题是如何找到哪个包和哪个功能。
那么,我如何(如果有的话)通过查看 R 会话来检测哪个包和函数称为 R 包,导致它通过命名空间加载?
【问题讨论】:
-
卸载
shinjs,然后运行直到出现错误? -
谢谢@Axeman,我试过了,问题是 Shiny 对它遇到问题的确切位置没有帮助(有很多文件,而且都是高度模块化的)。
标签: r debugging namespaces