Python程序webkit2png出现“无法连接到X服务器”错误
当我在我的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:])