【问题标题】:What non web-oriented Python frameworks exist? [closed]存在哪些非面向 Web 的 Python 框架? [关闭]
【发布时间】:2010-11-24 23:57:44
【问题描述】:

我正在寻找一个很好的框架来作为我的应用程序开发的基础。

在PHP中我使用Symfony,在ActionScript中使用PureMVC,它们都是MVC框架。

我正在寻找面向通用应用程序开发的 Python 框架,而不是 Web 应用程序。我的意思是,只是应用程序、服务、守护程序等。 有时我没有要实现的真实视图,只是一个 RPC 服务。其他时候我必须为串行端口编写代码,或者实现命令调度程序,或者其他什么。

在我看来,作为我需求的标准基础,最好的开源软件是什么?为什么您认为您的建议会满足我对其竞争对手的要求?

编辑:

对于“通用目的”,我的意思是强烈限制在有或没有 GUI、作为守护程序或命令行应用程序、是否为多进程/多线程。通用,提供良好的架构结构,而不是特定的工具。

编辑 2:

我想解释一下,这个问题是关于一个或多个“框架”的最终存在,它不受任何特定用例的限制,而是能够提供良好且良好的标准化启动结构/架构,应用了一些最佳实践,作为指导方针,能够指导应用程序本身的架构规划,而不是它们与要执行的任务有关的行为。

我认为这个问题不是那么主观,可能因为我的英语而暴露错误,但我认为这是合法的

【问题讨论】:

  • “通用”是什么意思?图形用户界面?非 GUI 命令行?
  • 通用的意思就是“通用”:) 不限于是否有 GUI,是否是守护进程或命令行应用程序,是否是多进程/多线程。通用,提供良好的架构结构,而不是特定的工具。
  • 避免提出主观、争论或需要长时间讨论的问题。
  • @AberT:请用其他事实更新您的问题。当您可以更新时,不要评论您自己的问题。
  • 这个问题不是特别主观,但它是模糊和开放的。但大多数人抱怨的是,他们认为 Python 中的通用应用程序框架毫无意义,但事实并非如此。但是然后我们开始变得主观和争论。 :)

标签: python frameworks


【解决方案1】:

对于需要异步处理大量连接的网络服务,很多人青睐Twisted

然而,除此之外(和 Web 应用程序),Python 对总体框架的需求比许多其他语言要少——核心语言本身富有表现力、功能强大,并且附带电池;为什么要添加任何东西?

【讨论】:

  • 为了不重新发明轮子? :P
  • @AlberT,您可能需要的大部分轮子已经是标准库的一部分。
  • 正如我在问题的编辑中所写,我不是在谈论“工具”,而是在谈论架构
  • @AlberT,您的问题太笼统了,无法得到比这更好的答案。如果您对自己的应用程序的了解只是它是一个应用程序,那么没有什么可建议的。
  • @Triptych:其实是有的。 ZCA。见下文。
【解决方案2】:

我猜您正在寻找的可能是Enthought Tool Suite (ETS),尤其是Envisage(用于科学应用的可扩展插件架构)。

【讨论】:

  • 非常有趣。一旦我对套件进行了更深入的研究,我将接受您的回答。暂时 +1。
  • 为您引用 Albert + 1。我想知道一些比迄今为止给出的一般答案更具体的东西
【解决方案3】:

查看 Zope 组件架构。它是一种使用和重用组件的架构。它主要用于 Web 应用程序,因为它用于 Zope(顾名思义),但它绝不是特定于 Web 的。

我写了一个简短的介绍: http://regebro.wordpress.com/2007/11/16/a-python-component-architecture/

这是一本关于它的在线书籍:http://www.muthukadan.net/docs/zca.html

这是一本非在线书籍:http://www.amazon.com/dp/354076447X

【讨论】:

    【解决方案4】:

    我很难想象一个“框架”会是什么,它将“有或没有 GUI、作为守护程序或 cmd 行应用程序、是否是多进程/多线程”统一起来。您希望这样的框架能提供什么?

    构建框架是为了封装各种基本任务——GUI、Web、异步性或其他任何东西——因此,正如您所说,用户不必重新发明它们。但是您明确排除了使框架成为框架的所有事物,因此我看不到您还剩下什么。

    您唯一不排除的就是数据库访问 (ORM)。如果这就是你想要的,看看 sqlalchemy。

    【讨论】:

    • 好的,让我帮我选择一个比“框架”更好的词..也许我的字典很差,但我的第二次编辑应该澄清我的意思(我希望)
    【解决方案5】:

    “不受 GUI 的限制”没有多大意义。

    GUI——通常——非常复杂,需要一个框架。人们使用tkinterpyQTpyGTKwxWidgets等来构建GUI。

    “守护进程或命令行应用程序”不需要任何类型的框架。这已经是标准库的一部分了。

    “是否是多进程/多线程”已经是标准库的一部分。

    既然“一般”没有多大意义,所以有几个答案:

    • 对于 GUI 开发,是的,有很多框架。 “最佳”是主观的。

    • 对于非 GUI 开发,没有“额外的”框架可言。

    • 对于“事件驱动的网络”,有twisted

    • 对于“对象-关系映射”,有几个。 “最佳”是主观的。

    【讨论】:

      【解决方案6】:

      Python 的核心语言和标准库本身就是一个了不起的框架。

      只有在某些方面存在缺陷的语言才需要一个框架来高效开发应用程序(例如:JavaScript 需要 jQuery 或 Prototype)。

      使用 Python 的一般方法是:

      1. 检查标准库;它可能有你需要的东西。
      2. 如果有一些大型组件不在标准库中,则可能有一个特定的库可以提供帮助。

      【讨论】:

        【解决方案7】:

        与 GObject 和 GLib 的 Python 绑定提供了一个不绑定到 GUI 或任何东西的应用程序框架——但是,如果它应该绑定到 UI,GTK+ 就更接近了。

        GLib 提供了应用程序主循环、事件、信号和回调等功能。 GObject 实现了带有可连接信号槽的对象的基类。

        GLib 还提供了很多文件系统抽象,包括 VFS、垃圾处理、目录监控、文件元数据。

        python参考在这里:

        http://library.gnome.org/devel/pygobject/stable/index.html

        【讨论】:

          【解决方案8】:

          我不认为你所要求的存在。框架为类似的应用程序提供了一个通用框架,而您要求为所有应用程序提供一些东西。几乎按照定义,这样的事情不可能存在。

          相反,对于每种应用类型,除非您为该特定类型的应用找到框架,否则您自己提供框架并使用库来提供跨应用共享的通用功能。 Python 有许多优秀的标准库,更多可以在 PyPi 找到。

          【讨论】:

            猜你喜欢
            • 2013-05-18
            • 1970-01-01
            • 2010-09-19
            • 2012-03-04
            • 2010-09-06
            • 1970-01-01
            • 2011-09-09
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多