繁体   English   中英

Rstudio中的“工具中的错误::: httpdPort <= 0L:...”是什么意思?

[英]What does “Error in tools:::httpdPort <= 0L : …” in Rstudio means?

我已将R升级到版本3.2.2。 当我重新启动Rstudio时,在显示“>”之前,会出现一条错误消息:

Error in tools:::httpdPort <= 0L :
        comparison (4) is possible only for atomic and list types

这是什么意思? 我该怎么做才能删除此邮件?

将您的RStudio版本升级到最新版本,应该适用于任何操作系统。

对于Linux / Ubuntu 14.04终端用户,只需执行以下操作:

sudo apt-get remove rstudio

wget https://download1.rstudio.org/rstudio-0.99.489-amd64.deb

sudo dpkg -i rstudio-0.99.489-amd64.deb

现在,运行RStudio。 错误消息应该消失。

我今天刚遇到同样的问题,并通过源代码搜索了解原点。 原因是直到R 3.1.3, httpdPort是一个变量,而自R 3.2.0起,它就是一个函数。

发生错误,因为该行

tools:::httpdPort <= 0L

如果httpdPort是一个函数,那就错了。 它应该是

tools:::httpdPort() <= 0L

似乎RStudio在某些时候运行该行,当然,它需要知道,运行两个版本中的哪一个。 这就是在R从版本<= 3.1.3更新到版本> = 3.2.0之后需要更新RStudio的原因。

httpdPort在文件src/library/tools/R/dynamicHelp.R 在R 3.1.3版中,定义为

httpdPort <- 0L

在R版本3.2.0中,它是

httpdPort <- local({
    port <- 0L
    function(new) {
        if(!missing(new))
            port <<- new
        else
            port
    }
})

因此,解决问题的方法是将R版本降级为<= 3.1.3 升级RStudio。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM