Jak sprawić, by Python, QT i Webkit działały na bezgłowym serwerze?
Mam serwer Linux Debiana, którego używam do różnych rzeczy. Chcę, aby była w stanie wykonywać niektóre zadania, które muszę wykonywać regularnie.
Ten kod może byćznaleźć tutaj.
import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *
from PyQt4.QtWebKit import *
class Render(QWebPage):
def __init__(self, url):
self.app = QApplication(sys.argv, False) # Line updated based on mata's answer
QWebPage.__init__(self)
self.loadFinished.connect(self._loadFinished)
self.mainFrame().load(QUrl(url))
self.app.exec_()
def _loadFinished(self, result):
self.frame = self.mainFrame()
self.app.quit()
Prosty test mógłby wyglądać następująco:
url = 'http://example.com'
print Render(url).frame.toHtml()
Podczas wywołania konstruktora umiera z tą wiadomością (jest drukowany na standardowe wyjście, a nie nieprzechwycony wyjątek).
: cannot connect to X server
Jak mogę używać Pythona (2.7), QT4 i Webkita na serwerze bezgłowym? Nic nie musi być wyświetlane, więc mogę modyfikować dowolne ustawienia lub cokolwiek, co trzeba zmienić.
Zajrzałem do alternatyw, ale to jest najlepsze rozwiązanie dla mnie i moich projektów. Gdybym musiał zainstalować serwer X, jak mogę to zrobić przy minimalnym obciążeniu?