从Python运行Xvfb

时间:2011-07-24 22:42:13

标签: python subprocess xvfb

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

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

xvfb-run python2.6 try.py.

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

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

将这段代码添加到脚本的开头,然后尝试将脚本作为

运行
python2.6 try.py

我收到消息:

: cannot connect to X server 

我还需要做些什么吗?提前谢谢。

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:3)

你需要添加:

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

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