什么非面向Web的Python框架存在?

时间:2009-09-02 15:20:31

标签: python frameworks

我正在寻找一个基于我的应用程序开发的良好框架。

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

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

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

修改

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

编辑2:

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

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

8 个答案:

答案 0 :(得分:9)

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

然而,在那之外(和Web应用程序),Python中的总体框架比其他许多语言更少 - 核心语言本身具有表现力,功能强大,并附带电池;为什么要添加任何东西?

答案 1 :(得分:6)

查看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

答案 2 :(得分:6)

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

答案 3 :(得分:3)

“不受限于使用或不使用GUI”没有多大意义。

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

“守护程序或cmd行app”不需要任何类型的框架。这已经是标准库的一部分。

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

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

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

  • 对于非GUI开发,没有“附加”框架可供使用。

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

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

答案 4 :(得分:3)

我很难想象“有或没有GUI,作为守护进程或cmd行应用程序,无论是多进程/多线程还是不进行”统一的“框架”。你期望这样的框架提供什么?

构建框架是为了封装各种基本任务--GUI,Web或异步,或其他任何东西 - 所以,正如您所说,用户不必重新发明它们。但是你明确地排除了使框架成为框架的所有东西,所以我看不到你剩下的东西。

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

答案 5 :(得分:1)

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

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

Python的一般方法是:

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

答案 6 :(得分:0)

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

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

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

python引用在这里:

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

答案 7 :(得分:0)

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

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

相关问题