2011-08-03 38 views
5

Khi tôi sử dụng webkit2png trên máy chủ SSH của mình, tôi gặp lỗi: "Không thể kết nối với máy chủ X: 0.0" Webkit2png là một gói tạo ảnh chụp màn hình PNG trang html. Trên máy tính của tôi nó hoạt động hoàn hảo, nhưng trên máy chủ SSH thì không; nó không tạo ra hình ảnh PNG.Lỗi "Không thể kết nối với máy chủ X" với chương trình Python webkit2png

Nó chỉ hoạt động khi tôi làm lệnh này:

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

Nhưng đó là một lệnh Unix, và không mã Python.

Mã 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() 

Nhờ sự giúp đỡ của bạn!

+0

Ít nhất liên kết đến 'nguồn webkit2png', trang web, tài liệu, và cho chúng tôi biết nếu bạn nhìn vào các tài liệu về cách thiết lập xserver và những gì họ nói? – agf

Trả lời

2

Bạn cần phải chạy xvfb unix lệnh đầu tiên (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:]) 
Các vấn đề liên quan