小编典典

GtkWarning:无法打开显示

scrapy

我正在尝试在vps上运行spider(使用使用python-gtk2的scrapyjs)。在运行spider时,我得到了错误

/root/myporj/venv/local/lib/python2.7/dist-packages/gtk-2.0/gtk/__init__.py:57: GtkWarning: could not open display

如何在无头安装中运行此程序?


阅读 904

收藏
2020-04-09

共1个答案

小编典典

首先,你没有指定服务器上是否安装了桌面环境(或X)?

无论如何,你可以使用xvfb以下命令为spider实现无头设置:

Xvfb或X虚拟帧缓冲区是实现X11显示服务器协议的显示服务器。与其他显示服务器相比,Xvfb在内存中执行所有图形操作,而不显示任何屏幕输出。从客户端的角度来看,它的行为与任何其他X显示服务器完全一样,可以处理请求并适当地发送事件和错误。但是,未显示任何输出。该虚拟服务器不需要运行它的计算机甚至具有屏幕或任何输入设备。

首先,xvfb在你的服务器上安装。假设你正在使用apt-get

sudo apt-get install xvfb

现在,以自定义显示号运行xvfb服务,例如:

sudo Xvfb :5

之后,你可以X通过导出显示号并运行你的应用程序来运行需要在虚拟帧缓冲区内运行的任何应用程序:

export DISPLAY=:5
run_my_application

将DISPLAY只对当前终端会话设置,这一步实现自动化时,要记住这一点。

2020-04-09