2011-08-03 22 views
5

當我在我的SSH服務器上使用webkit2png時,出現錯誤:「無法連接到X服務器:0.0」 Webkit2png是一個打包PNG屏幕截圖的htmlpages。 在我的電腦上工作完美,但在SSH服務器上不行;它不會創建PNG圖像。使用Python程序webkit2png錯誤「無法連接到X服務器」webkit2png

當我做這個命令它僅適用於:

xvfb-run -a -s "-screen 0 640x480x16" python webkit2pngProgram.py 

但是,這是一個Unix命令,而不是Python代碼。

的webkit2pngProgram代碼:

from webkit2png import WebkitRenderer, init_qtgui 
from PyQt4.QtCore import QTimer 

def renderer_func(): 
    renderer = WebkitRenderer() 
    renderer.width = 550 
    renderer.height = 500 
    renderer.timeout = 10 
    renderer.wait = 1 
    renderer.format = "png" 
    renderer.grabWholeWindow = False 
    y = Program() 
    outfile = open("/image.png", "w") 

    renderer.render_to_file("/test.html", file=outfile) 
    outfile.close() 

def start(): 
    app = init_qtgui() ###### => STUCKS HERE 
    QTimer.singleShot(0, renderer_func) 
    app.exec_() 

if __name__ == "__main__": 
    start() 

感謝您的幫助!

+0

至少鏈接到'webkit2png'源,網頁,文檔,並告訴我們,如果你看了文檔瞭解如何設置xserver和他們說什麼? – agf

回答

2

您需要先運行xvfb unix命令(X Virtual Frame Buffer

server_num = int(os.getpid() + 1e6) 
newArgs = ["xvfb-run", "--auto-servernum", "--server-num", str(server_num), "--server-args=-screen 0, %dx%dx24" % (1024, 768), sys.argv[0], '-g','1024', '768'] 
os.execvp(newArgs[0],newArgs[1:])