我的R包的一个依赖项在加载时显示启动消息.我想压制这些启动消息.
到目前为止我发现的唯一修复是从我的DESCRIPTION文件中的Depends:行中删除有问题的包.然后调用suppressPackageStartupMessages(require("offendingPackage")) 在.onLoad我的包.
我宁愿将违规包保留为我的Depends的一部分,但似乎依赖中指定的任何内容都会被自动加载,因此无法被压制.
Dir*_*tel 39
suppressPackageStartupMessages()当且仅当启动消息实际写入时,该功能才有效packageStartupMessage()- 请参阅帮助页面.
许多软件包只是使用cat(),可以考虑一个buglet.在这种情况下
suppressMessages(library(foo))
Run Code Online (Sandbox Code Playgroud)
效果更好.
Jor*_*eys 22
如果使用名称空间,则可以在其中指定包Imports,并使用import或加载必要的函数importFrom.这样,包没有附加,但包可以加载和使用必要的功能.如果没有附加,则不会给出启动消息,因此这种方法可以确保您不会在Imports中看到任何包的启动消息.
确保检查是否已导入重要的所有内容.如果您导入的包依赖于其他包,我不确定是否导入了使用这些函数所需的所有内容.您可能需要做一些令人费解的事情才能获得所需的一切.从Imports好的方面来说,使用确保任何依赖性检查都将正确执行.
另一个选择是不指定包Depends,但在SuggestsDESCRIPTION文件中,并使用@Dirk给你的选项.如果设置了"dependencies = TRUE",这将给出正确的依赖性检查install.packages().但我个人认为使用命名空间更加干净.