2011-07-24 36 views
2

我正在使用沒有X服務器的服務器,並試圖運行使用spynner模塊(需要X服務器)的腳本。爲此,我想運行Xvfb。從Python運行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

你需要添加:

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

,這樣當它打開到X服務器的連接,它就能找到你已經開始

+0

它完美的作品。非常感謝你。 –

4

對於實例的Xvfb未來的訪問者,值得一提的是,PyVirtualDisplay提供了對Xvfb的抽象,使其易於在Python中使用。