2

我正在一个没有 X 服务器的服务器上工作,并尝试运行一个使用 spynner 模块的脚本,这需要 X 服务器。为此,我想运行 Xvfb。

我可以通过调用它来运行脚本xvfb-run,即:

xvfb-run python2.6 try.py.

这没有问题。但是,我需要从脚本中调用 Xvfb。为此,我尝试使用 subprocess 如下:

xvfb = subprocess.Popen(['Xvfb', ':99'])

将这段代码添加到脚本的开头后,并尝试将脚本运行为

python2.6 try.py

我收到消息:

: cannot connect to X server 

还有什么我需要做的吗?提前致谢。

4

2 回答 2

5

对于未来的访问者,值得一提的是PyVirtualDisplay提供了对 Xvfb 的抽象,使其易于从 Python 中使用。

于 2012-08-28T01:35:35.720 回答
4

您需要添加:

import os
os.environ["DISPLAY"]=":99"

这样当它打开到 X 服务器的连接时,它就能够找到你启动的 Xvfb 实例

于 2011-07-24T22:57:55.023 回答