用于Python 3的WSGI服务器(PEP 3333)

用于Python 3的WSGI服务器(PEP 3333),python,python-3.x,wsgi,Python,Python 3.x,Wsgi,哪些WSGI服务器可用于Python 3和?显然,根据PEP 3333,mod_WSGI(3.3)的最新版本与Python 3兼容: “最初的WSGI规范(PEP 333)只支持Python2.X。 mod_wsgi支持基于猜测的Python3.X 至于WSGI规范对于Python3.X是什么样子的 新的WSGI规范(PEP 3333)现在终于被接受和接受 尽管需要对mod_wsgi进行一些调整,以使其更加灵活 严格来说,如果您根据PEP编写Python3WSGi应用程序 3333,它将在mo

哪些WSGI服务器可用于Python 3和?

显然,根据PEP 3333,mod_WSGI(3.3)的最新版本与Python 3兼容:

“最初的WSGI规范(PEP 333)只支持Python2.X。 mod_wsgi支持基于猜测的Python3.X 至于WSGI规范对于Python3.X是什么样子的 新的WSGI规范(PEP 3333)现在终于被接受和接受 尽管需要对mod_wsgi进行一些调整,以使其更加灵活 严格来说,如果您根据PEP编写Python3WSGi应用程序 3333,它将在mod_wsgi上运行得非常好 尝试使用Python 3.X,您将需要使用Python 3.1或更高版本。”


正如Gabriel所指出的,Apache/mod_wsgi 3.X支持Python3。其他选项有WSGI服务器和。

我喜欢,特别是因为它本身是用python编写的。它还有一个用于创建其他类型服务器的API。我能够以最小的工作量将其适应到XMLRPC服务器中。

,这是标准库的一部分。

Waitress 这意味着它是一个生产质量高的纯Python WSGI服务器,具有非常可接受的性能。除了Python标准库中的依赖项之外,它没有其他依赖项。它在Unix和Windows上的Python上,在Python2.6+和Python3.2下运行。它还可以在UNIX上的PyPy1.6.0上运行。它支持HTTP/1.0和HTTP/1.1

以下是他们网站上的一段话,解释了他们为什么写这篇文章:

为什么? 在Waitess发布时,已经有许多纯Python WSGI服务器。为什么我们需要另一个

Waitress对于需要广泛平台支持的web框架作者来说是有用的。它既不是最快也不是最高级的WSGI服务器,但使用它有助于消除N-by-M文档负担(例如,生产与部署、Windows与Unix、Python 3与Python 2、PyPy与CPython),以及当前(2012年)WSGI服务器的不稳定平台支持所造成的用户混乱。例如,gunicorn很好,但不在Windows上运行。paste.httpserver是完全可维护的,但它不在Python 3下运行,也没有专用的测试套件,可以让做Python 3端口的人知道它在端口完成后工作。wsgiref在大多数Python下都可以正常工作,但速度有点慢,不建议在生产环境中使用,因为它是单线程的,并且没有经过安全问题审核

在撰写本文时,一些现有的WSGI服务器已经声称获得了广泛的平台支持,并拥有可服务的测试套件。例如,CherryPy WSGI服务器以Python2和Python3为目标,可以在UNIX或Windows上运行。然而,它并不是与同名的web框架分开分发的,仅仅因为服务器组件而要求非CherryPy web框架依赖CherryPy web框架分发是很尴尬的。CherryPy服务器的测试套件也依赖于CherryPy web框架,因此即使我们将其服务器组件分成单独的发行版,我们仍然需要为其所有测试进行回填。CherryPy团队已经开始了Cheroot的工作,但是这应该可以解决这个问题

waiteress是存在于zope.server中的WSGI相关组件的分支。server的框架独立测试覆盖率可以通过,而且在fork过程中增加了更多的覆盖率。大约从2001年起,zope.server就以某种形式存在,并且从那时起就开始投入生产使用,所以waiteress并不是“另一个”服务器,它更像是对一个已经运行良好的旧服务器的重新打包

自3.0版起支持PEP333。它最初是一个Ruby应用服务器,现在正式支持Python。这些特色包括:

  • 直接集成到web服务器(类似于mod_wsgi的工作方式),但在web服务器之外运行所有应用程序进程
  • Apache和Nginx支持
  • 事件内部I/O体系结构
  • 多进程应用程序工作者I/O体系结构。Phusion Passenger缓冲所有输入和输出,以保护应用程序不受慢速客户端的影响
  • 具有实时刷新功能的输出缓冲
  • 基于流量的工作进程的动态生成和停止
  • 自动用户切换,方便的安全功能
  • 滚动重新启动
Phusion Passenger目前被纽约时报、AirBnB、皮克斯、赛门铁克等大型政党使用。

bjoern
:快速、超轻量的HTTP/1.1 WSGI服务器 引述:

为什么很酷
bjoern
是目前最快、最小、最轻量级的WSGI服务器,具有

  • 约1000行C代码
  • 内存占用~600KB
  • Python2和Python3支持
  • 单线程,无协程或其他垃圾
  • 可以绑定到TCP主机:端口地址和Unix套接字
  • HTTP/1.0和1.1中的完全持久连接(“保持活动”)支持,包括对HTTP/1.1分块响应的支持
如果您看看web上的WSGI服务器基准测试(例如),性能提升确实令人震惊:

如何安装 先决条件 在构建
bjoern
之前,您需要安装
gcc
libev
软件包:

  • Debian/Ubuntu

    $ sudo apt install build-essential
    $ sudo apt install libev-dev
    
    $ sudo yum groupinstall 'Development Tools'
    $ sudo yum install libev-devel
    
    $ dnf groupinstall 'Development Tools'
    $ sudo dnf install libev-devel
    
  • RHEL/CentOS

    $ sudo apt install build-essential
    $ sudo apt install libev-dev
    
    $ sudo yum groupinstall 'Development Tools'
    $ sudo yum install libev-devel
    
    $ dnf groupinstall 'Development Tools'
    $ sudo dnf install libev-devel
    
  • 软呢帽:

    $ sudo apt install build-essential
    $ sudo apt install libev-dev
    
    $ sudo yum groupinstall 'Development Tools'
    $ sudo yum install libev-devel
    
    $ dnf groupinstall 'Development Tools'
    $ sudo dnf install libev-devel
    
  • MacOS

    $ sudo apt install build-essential
    $ sudo apt install libev-dev
    
    $ sudo yum groupinstall 'Development Tools'
    $ sudo yum install libev-devel
    
    $ dnf groupinstall 'Development Tools'
    $ sudo dnf install libev-devel
    
    从应用商店安装XCode以获取
    gcc
    ;对于
    libev
    ,从源代码构建或安装vie自制:

    $ brew install libev
    
  • 窗口

    遗憾的是,Windows不受支持,因为
    libev
    不可用

meinheld
:高p