Python程序webkit2png出现“无法连接到X服务器”错误

5 投票
1 回答
3365 浏览
提问于 2025-04-16 22:48

当我在我的SSH服务器上使用webkit2png时,出现了一个错误:“无法连接到X服务器:0.0”。

webkit2png是一个可以将网页截图保存为PNG格式的工具。

在我的电脑上,它运行得很好,但在SSH服务器上却不行;它没有生成PNG图片。

只有当我执行这个命令时,它才会工作:

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

但那是一个Unix命令,不是Python代码。

这是webkit2png程序的代码:

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

谢谢你的帮助!

1 个回答

2

你需要先运行一下 xvfb 这个命令(X虚拟帧缓冲

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:]) 

撰写回答