我不确定这是怎么回事...我正在尝试为Bioconductor开发R软件包,当在软件包检查中运行示例时,会出现一个奇怪的错误。
Running examples in ‘MMAPPR2-Ex.R’ failed
The error most likely occurred in:
> ### Name: prePeak
> ### Title: Identify chromosomes containing peaks
> ### Aliases: prePeak
>
> ### ** Examples
>
> postPrePeakMD <- prePeak(postLoessMD)
>
>
>
> ### * <FOOTER>
> ###
> cleanEx()
> options(digits = 7L)
> base::cat("Time elapsed: ", proc.time() - base::get("ptime", pos = 'CheckExEnv'),"\n")
Time elapsed: 423.952 27.296 464.105 0.004 0.14
> grDevices::dev.off()
Error in grDevices::dev.off() :
cannot shut down device 1 (the null device)
如您所见,该错误不在我的代码中,而是在此后自动生成的“ FOOTER”部分中。我不知道我的程序包是如何弄乱图形设备的,因为它只处理图形设备一个地方,我在示例中注释了该部分的运行位置。我不确定该怎么办。
以下是有问题的Travis版本:https://travis-ci.org/kjohnsen/MMAPPR2/builds/436922565
答案 0 :(得分:0)
我遇到了同样的问题。在我的情况下,for i in quotes:
if 'love' in i:
print(i)
if 'power' in i:
i.replace('power','POWER')
print(i)
if 'power' and 'love' in i:
print(i.upper())
正在将错误标识为与实际错误所在的函数不同,这可能是因为自动devtools::check()
调用仅在检查了第二个函数的示例时才发生。我不能仅通过注释掉所有内容来解决问题,因为令人讨厌的图形代码不在示例中,而是在函数本身中。如果我在函数中注释了dev.off()
和/或graphics.off()
,则如果打开了62个以上的设备,则可能会出现错误。因此,我要做的是添加以下代码行:dev.off()
。做到了。