【问题标题】:cherrypy and wxpython樱桃和 wxpython
【发布时间】:2011-01-02 14:28:45
【问题描述】:

我正在尝试使用 wxpython ui 制作一个cherrypy 应用程序。问题是两个库都使用闭环事件处理程序。有没有办法让它工作?如果我有 wx ui start cherrypy 会锁定 ui 吗?

【问题讨论】:

  • 您能简单描述一下您的应用程序吗?我不确定您是如何集成网络服务器和 GUI 的。
  • 你的问题听起来像两个霍比特人

标签: python wxpython cherrypy


【解决方案1】:

如果您使用线程,您应该能够在一个线程中启动 CherryPy 服务器并在另一个线程中运行 wxPython。 wxPython wiki 上的这篇文章 (http://wiki.wxpython.org/LongRunningTasks) 有一些关于线程的信息,CherryPy 服务器源代码 (http://www.cherrypy.org/browser/trunk/cherrypy/wsgiserver/__init__.py) 有一些关于服务器如何工作以及如何让它与线程交互的文档。

【讨论】:

    【解决方案2】:

    解耦它们的一种方法是将它们作为两个独立的进程启动,并让它们通过某种 IPC 机制进行通信。您可能需要编写一个小型适配器才能让它们使用通用协议。

    由于您正在使用 CherryPy,您还可以通过 HTTP 公开一个控制接口,wx GUI 可以使用该控制接口来驱动您的服务器。

    【讨论】:

      【解决方案3】:

      我建议您查看 Calibre(电子书管理器)source。它是用 PyQT 编写的,但使用 CherryPy 允许人们从局域网外部查看他们的库。

      【讨论】:

        【解决方案4】:

        CherryPy interferes with Twisted shutting down on Windows查看我的回答

        简而言之,CherryPy 默认处理主循环,但它绝对不需要。停止使用 quickstart 并在没有 engine.block 的情况下调用 engine.start,CP 将在自己的线程中运行,并将主线程留给您的其他框架控制。

        【讨论】:

          猜你喜欢
          • 2012-07-06
          • 1970-01-01
          • 2012-12-07
          • 2011-12-06
          • 1970-01-01
          • 2010-09-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多