고정이 문제는 QApplication을 main() 밖으로 이동하여 해결되었습니다.Python-Django 및 PyQt4 관련 문제
안녕하세요, 나는 주어진 URL의 JavaScript 코드를 실행하고 최종 HTML을 제공하는 웹 서비스를 구현하려고합니다. JS 처리 및 Django 1.4 웹 프레임 워크에 PyQt4를 사용하고 있습니다. 문제는 :
WARNING: QApplication was not created in the main() thread
QObject::startTimer: QTimer can only be used with threads started with QThread
과 : 스크립트는 항상 초대하지만 통합 할 때 장고에 그것이 경고 다음 실행시 다음, 장고 로컬 서버를 실행 한 후, 처음에만 작동 명령으로 작동 나는 잘못된 결과를 얻었습니다.
#!/usr/bin/env python
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtWebKit import *
from time import time, sleep
app = QApplication(sys.argv)
def wait(app, secs=1):
deadline = time() + secs
while time() < deadline:
sleep(0)
app.processEvents()
def main(url):
# app = QApplication(sys.argv)
web = QWebView()
web.load(QUrl(url))
wait(app, 15)
return web.page().mainFrame().toHtml().toUtf8()
당신이 봤어 : 문제는 내가 장고 (urlconf가 주어진 URL이 주요 fonction로 연결)에 사용하고 스크립트를 임의의 스레드에 여기에 ... 입니다 사용하지 않는 것입니다 이전에 또는 비슷한 것을 시도 했습니까? 어떤 정보라도 도와주세요. 감사합니다.
P. 이것은 내 첫 게시물 여기에 모든 것이 분명 희망 :
EDIT 경고는 Rostyslav에게 감사하지만 나는 여전히 판매 문제가 있습니다.
: 당신은 서버에서 사용하는 스레드를 사용하지 않도록하기위한 것입니다
runserver
명령에 옵션--nothreading
매개 변수를 전달할 수 있습니다. 내 django 프로젝트의 views.py에 QApplication을 작성하는 것은 QGIS로 맵을 생성하는 외부 파이썬 패키지에서 main()을 작성하는 대신 작동합니다. 팁 고마워 ! – Istopopoki건배! 나는 당신을 위해 모든 것이 잘되기를 바랍니다. – Saksow