首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R虚拟机上出现tcltk2进度条错误(AWS EC2实例)

R虚拟机上出现tcltk2进度条错误(AWS EC2实例)
EN

Stack Overflow用户
提问于 2016-04-04 03:38:17
回答 1查看 204关注 0票数 0

我编写的一个R函数在EC2实例上运行时会导致问题。它使用tcltk2包创建一个进度条来监控函数的进度。在桌面实例上运行良好的情况在EC2上会返回以下错误:

代码语言:javascript
复制
Error in structure(.External(.C_dotTclObjv, objv), class = "tclObj") : 
  [tcl] invalid command name "toplevel".
In addition: Warning message:
In fun(libname, pkgname) : couldn't connect to display ":0"

我猜问题在于EC2没有“显示”,因此不知道如何处理弹出的进度条窗口。我想知道是否有一种方法可以在完全禁用进度条的情况下解决这个问题。

EN

回答 1

Stack Overflow用户

发布于 2016-04-04 16:36:28

如果您不需要与显示器上的任何内容交互,只需让应用程序代码显示其进度条,最简单的方法就是在EC2实例上放置一个无头X服务器(可能是Xvfb)。这将允许Tcl端的Tk包初始化自身,进而使事情在R端工作。

否则,如果您通过ssh访问EC2实例,则可以使用X转发来允许进度条在本地系统上运行。显然,要做到这一点,您需要运行本地X服务器,这在某些平台上很容易,但在其他平台上却非常笨拙,这一主题必须在其他地方得到更好的回答。您也可以使用VNCRemote Desktop来实现此功能,尽管我在使用它们方面的经验要少得多。

如果这两者都不起作用,并且GUI部分实际上只是一个进度条和其他杂乱的部分,那么您必须进入并编辑代码以去除GUI部分。这是您可以在本地处理的东西。第一步可能是禁用tcltk包的加载(找到library("tcltk")并删除它),然后遍历并修复(可能通过策略删除)所有损坏的部分。希望不会太多!还请记住,您可能很幸运,会发现您正在使用的代码只是一个围绕其他东西的图形用户界面包装器,只是设置参数并提供监视;对于无头工作,您可以不进行监视,也可以只将“I'm not dead yet”消息输出到控制台。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36390211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档