从Python运行Xvfb

2 投票
2 回答
5830 浏览
提问于 2025-04-16 22:11

我正在一个没有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 

我还需要做其他什么吗?提前谢谢你。

2 个回答

5

为了帮助未来的访问者,值得提一下的是,PyVirtualDisplay 提供了一个简单的方式来使用 Xvfb,这样你就可以更方便地在 Python 中使用它。

4

你需要添加:

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

这样,当它去连接X服务器的时候,就能找到你启动的Xvfb实例了。

撰写回答