【问题标题】:Apache2: mod_wsgi or mod_python, which one is better?Apache2:mod_wsgi 或 mod_python,哪个更好?
【发布时间】:2011-01-26 03:12:24
【问题描述】:

我打算用python编写web服务。但是,我发现 wsgi 也做类似的事情。可以首选哪一个?

谢谢
巴拉

更新

我还是一头雾水。请帮忙。

在我看来更好的意思是:
1.Bug会定期修复。
2. 被大多数开发者选择。
3. 可以开箱即用地支持其他功能,例如 AWS 等身份验证令牌。
4.对版本没有强依赖。(我看到wsgi需要python 2.6)
5. 所有 python 库都可以开箱即用。
6. 未来可扩展。
7.未来升级不会造成任何问题。

以我有限的经验,我想要这些功能。可能有一些我可能会丢失。

谢谢
巴拉

更新

对于造成的所有混乱,我深表歉意。我只想用python语言公开一个宁静的网络服务。有好的框架吗?

【问题讨论】:

  • 取决于你想做什么,WSGI 级别很低,你需要选择一个框架在 WSGI 之上运行,需要更多信息
  • 其实我只是想写 REST Web 服务 API。目前,我不关心速度,但将来我可能会担心。
  • 1) 请定义“更好”和“首选”。您需要提供标准;你在找什么。如果你不说出对你来说什么是重要的,那么更好是无法定义的。 (2) 不要将 cmets 添加到您拥有的问题中。使用您有关 REST 的信息更新问题。保持问题清晰、完整和准确。不要添加 cmets。
  • “我还是一头雾水。”?每个人都说使用mod_wsgi。有什么困惑?请具体。
  • 您的语言令人困惑。如果您的意思是“mod_python”,请不要说“python”,如果您的意思是“mod_wsgi”,请不要说“wsgi”。 WSGI 不是 mod_wsgi,反之亦然。它们不是可互换的术语。此外,WSGI 规范不受 Python 2.6 的约束,mod_wsgi 也不受约束。可能只有适用于 Python 2.6/3.1 的 Windows mod_wsgi 二进制文件可用,但如果您有合适的旧版 Microsoft 编译器,您也可以在 Windows 上为 Python 2.3 到 2.5 构建它。

标签: python rest web-services apache2


【解决方案1】:

在这一点上,mod_wsgi 比 mod_python 更积极地维护。它也有很大的发展势头,因为它最近被 Django 采用为 apache2 上的首选部署方法。作者还积极与 Python 社区合作,探讨 WSGI 的未来发展。

【讨论】:

    【解决方案2】:
    1. Bug 会定期修复。

      除非你付钱,否则你对此一无所知。

    2. 被大多数开发者选择。

      mod_wsgi

    3. 可以直接支持 AWS 等身份验证令牌等附加功能。

      适用于每个框架。

    4. 对版本没有强依赖。(我看到wsgi需要python 2.6)

      什么?一切都取决于兼容的版本。一切。每一个软件。

    5. 所有 python 库都可以开箱即用。

      “全部?”那些写得不好的呢?

    6. 未来可扩展。

      当然。我们一直对此抱有希望。没有保证。

    7. 未来升级不会造成任何问题。

      这很有趣。

    “我想要这些功能。”

    我们都这样做。实际上,您可以获得#2。其余的没有意义或不能保证。

    【讨论】:

      【解决方案3】:

      不要混淆 WSGI 和 mod_wsgi 是什么。 WSGI 是用于在服务器上托管 Python Web 应用程序的接口规范。 mod_wsgi 模块是使用 Apache 作为底层 Web 服务器的 WSGI 规范的实现。因此,Python 和 WSGI 并不是完全可以选择的,WSGI 只是能够在 Python Web 服务/应用程序和 Web 服务器之间进行通信的一种方式。 mod_wsgi 包是该接口的一种实现。所以,WSGI 是达到目的的手段,而不是解决方案。

      就个人而言,我非常建议您只使用最小的 Python 框架/非框架,正如 Alex 所建议的,Werkzeug 是一个不错的选择。

      【讨论】:

        【解决方案4】:

        mod_wsgi 专门用于运行在 Apache 中使用 WSGI 的 Python Web 应用程序。 mod_python 适用于任何类型的 Python Web 应用程序,包括 WSGI 应用程序。 mod_wsgi 的内存占用也比 mod_python 低。

        【讨论】:

          【解决方案5】:

          mod_wsgi 得到更积极的维护并且(我听说——我自己还没有对它们进行基准测试!)比mod_python 表现更好。因此,除非您需要 mod_python 的独有功能,只是为了使用 Web 应用程序框架(或非框架,如 werkzeug;-),否则您可能会更好地使用 mod_wsgi! (现在几乎所有 Python Web 框架,以及许多我最喜欢 werkzeug 的非框架,都支持 WSGI 作为它们与 Web 服务器的标准接口)。

          【讨论】:

          • 请注意,当 Alex 说“mod_wsgi 得到更积极的维护”时,他的意思是“mod_python 的最后一个版本是在 2007 年”。 :) 如果可以的话,绝对使用 mod_wsgi。
          【解决方案6】:

          如果您只想运行网络应用程序,请使用mod_wsgi。如果您需要为 httpd 的其余请求/响应阶段编写处理程序,请使用 mod_python

          【讨论】:

          • 这两者有什么区别。我只想公开 REST Web 服务 API。
          • @Algorist 除非您知道自己有需要 mod_python 的特殊要求,否则您不需要 mod_python。 99% 的时间没有理由在新项目中使用它,除非您必须在现有的 mod_python 依赖平台上运行。
          • mod_wsgi 用于运行网络应用程序。 mod_python 用于扩展 httpd。
          猜你喜欢
          • 2010-10-13
          • 1970-01-01
          • 1970-01-01
          • 2011-03-20
          • 1970-01-01
          • 1970-01-01
          • 2013-03-10
          • 2013-03-16
          • 1970-01-01
          相关资源
          最近更新 更多