私も webkit2png + Linux を使用していますが、MacBook Pro でローカルにテストしたときに、説明した問題が発生しました。問題は、QApplication.hasPendingEvents() が誤って True を返し、while ループがハングすることです。while ループを削除して、この問題を回避しました。
while self.__loading:
if timeout > 0 and time.time() >= cancelAt:
raise RuntimeError("Request timed out on %s" % url)
QCoreApplication.processEvents()
また、__WebkitRendererHelper.render のいくつかの場所でこの変更を行う必要があることに注意してください。これらの変更を行った後、すべてがうまくいきました-頑張ってください。
編集:私はもともと、基礎となるQTライブラリをアップグレードすることで、Linux側でこの問題を解決したと信じています。Ubuntu 10.04 LTS (4.6.2) のデフォルト バージョンにはバグがあり、以降のバージョンで修正されています。ここに私のインストール情報があります:
Package: libqtcore4
State: installed
Automatically installed: yes
Version: 4:4.7.0-0ubuntu2~lucid1~ppa1
Priority: optional
Section: libs
Maintainer: Kubuntu Developers <kubuntu-devel@lists.ubuntu.com>
Uncompressed Size: 7,471k
Depends: libc6 (>= 2.9), libgcc1 (>= 1:4.1.1), libglib2.0-0 (>= 2.12.0), libstdc++6 (>= 4.1.1), zlib1g (>= 1:1.1.4)
Breaks: libqt4-core (< 4.4.0~beta1-1), libqt4-gui (< 4.4.0~beta1-1)
Replaces: libqt4-core (< 4.4.0~beta1-1), libqt4-gui (< 4.4.0~beta1-1)
Description: Qt 4 core module
Qt is a cross-platform C++ application framework. Qt's primary feature is its rich set of widgets that provide standard GUI
functionality.
The QtCore module contains core non-GUI functionality.