当我运行r时(即使是无头rscript加载零库),我偶尔会看到
This is package 'modeest' written by P. PONCET.
For a complete list of functions, use 'library(help = "modeest")' or 'help.start()'.
这是我的日志文件的污染输出。虽然我发现它对几件事有用,但我很少加载它。在这种情况下,我如何防止它发出消息?我知道我是否真的加载了库,我可以suppressPackageStartupMessages
,但是即使没有加载任何软件包,此消息也会出现。
可能是我每次看到这个函数时都在调用一个函数,该函数是一个包含对modeest
(至少在雏菊链中的某个地方)的软件包的依赖性的软件包的一部分,即使我不要使用library(...)
。
复制的步骤:
- 安装模式最佳软件包
- 编写一个包含一个函数的软件包,该函数从Modeest导入函数
- 在步骤2中提到的软件包中编写另一个包装的函数,该函数取决于无关的(到模式)函数
- 使用
package::func(arg)
或library(package); func(arg)
从步骤3中调用一个不取决于modeest
的函数。
正确;该行为是由packageStartupMessage
在错误的软件包挂钩中调用的事实引起的。
这是一个错误。我已经提交了拉动请求以修复错误。
不幸的是,此修复程序没有太多要避免这种情况。 - 一件事是在通过assignInNamespace
加载任何其他软件包之前,将HotPatch base::packageStartupMessage
。