0

我正在使用 PyKDE(在 Python 中)库中的 KHTMLPart 组件在后台下载一些网页,并以像素为单位返回某些元素的大小。我真的不需要这个脚本的任何视觉输出,实际上我可能会在没有安装 X 的服务器上运行它。问题是,当我告诉我的应用程序只运行控制台时:

app = QApplication(sys.argv, False)

然后我的脚本在我初始化 KHTMLPart 的那一行出现段错误:

browser = KHTMLPart()

此外,我需要通过调用将 KHTML 浏览器窗口的大小设置为 1024x768:

browser.view.resize(1024, 768)

在我打电话之前,这似乎没有任何效果:

browser.show()

前一个会导致浏览器窗口出现,即使是很短的时间。我可以在服务器上运行一个简单的窗口管理器,比如fluxbox,它会做我想做的事,但如果它能够完全作为一个控制台应用程序运行,我会更高兴——如果这可能的话。有没有办法做到这一点?

4

2 回答 2

1

如果一切都失败了,你可以尝试使用X Virtual Framebuffer为你的应用程序提供一个假的 X 显示,让它在不显示任何地方的情况下运行。

于 2010-01-06T15:24:33.017 回答
1

我对此表示怀疑。大多数浏览器将下载、DOM 模型的创建和代码的不同部分的呈现分开。这允许他们在线程中下载数据,对其进行转换,然后使用优化的渲染器来显示它。这是一项昂贵的操作,因此他们仅在必要时才这样做。

因此,我认为您需要一个正在运行的 X 服务器这一事实是没有办法的。但是该服务器不需要使用显示器。vncserver您可以为此运行命令。它会告诉您为DISPLAY变量播种的值,以使您的代码访问此隐藏屏幕。

于 2010-01-06T15:25:35.693 回答