我正在使用没有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
我还需要做些什么吗?提前谢谢。
答案 0 :(得分:4)
对于未来的访问者,值得一提的是PyVirtualDisplay提供了对Xvfb的抽象,使其易于从Python中使用。
答案 1 :(得分:3)
你需要添加:
import os
os.environ["DISPLAY"]=":99"
这样当它打开与X服务器的连接时,它将能够找到你已经启动的Xvfb实例