2010-01-07 3 views
7

wxpython UIi를 사용하여 cherrypy 응용 프로그램을 만들려고합니다. 문제는 두 라이브러리 모두 폐쇄 루프 이벤트 핸들러를 사용한다는 것입니다. 이 방법이 효과가 있습니까? 내가 wxi를 시작하면 cherrypy가 Ui를 고정시킬 것인가?cherrypy 및 wxpython

+0

애플리케이션을 조금만 설명 할 수 있습니까? 웹 서버와 GUI를 어떻게 통합하고 있는지 잘 모르겠습니다. –

+1

귀하의 질문은 두 호빗처럼 들리네. – Manu

답변

5

은 한마디로 CherryPy interferes with Twisted shutting down on Windows

, CherryPy은 기본적으로 메인 루프를 처리에서 내 대답을 참조하지만, 확실히 할 필요가 없습니다. quickstart 사용을 중단하고 engine.start를 engine.block없이 호출하면 CP는 자체 스레드에서 실행되고 다른 프레임 워크가 제어 할 기본 스레드는 그대로 둡니다.

1

스레딩을 사용하는 경우 한 스레드에서 CherryPy 서버를 시작하고 다른 스레드에서 wxPython을 실행할 수 있어야합니다. wxPython wiki의이 기사 (http://wiki.wxpython.org/LongRunningTasks)에는 스레딩에 대한 정보가 있으며 CherryPy 서버 소스 코드 (http://www.cherrypy.org/browser/trunk/cherrypy/wsgiserver/__init__.py)에는 서버 작동 방식 및 스레드와 상호 작용할 수있는 방법에 대한 설명서가 있습니다.

1

이들을 분리하는 한 가지 방법은 두 개의 별도 프로세스로 시작하여 일종의 IPC 메커니즘을 통해 통신하도록하는 것입니다. 작은 어댑터를 작성하여 공통 프로토콜을 사용해야 할 수도 있습니다.

CherryPy를하고 있기 때문에 wx GUI가 서버를 구동하는 데 사용할 수있는 HTTP를 통해 제어 인터페이스를 노출 할 수도 있습니다.

1

저는 Calibre (전자 서적 관리자) source을 살펴 보시기 바랍니다. PyQT로 작성되었지만 사람들이 LAN 외부에서 라이브러리를 볼 수 있도록 CherryPy를 사용합니다.