Gunicorn能在Windows上运行吗?

118

我已经搜索了一段时间,惊讶地发现没有任何关于Gunicorn是否运行在Windows上的信息。 有人知道吗?如果是这样的话,我在哪里可以找到相关文档呢?


我正在寻找Windows系统下最接近Gunicorn的替代方案。有什么建议吗? - Hendy Irawan
7
我现在正在使用waitress,是一个非常好的替代方案 :) - Hendy Irawan
7个回答

183

严格来说这并不是一个答案。但是就实际情况而言,我所寻找的答案是如何在Windows上运行WSGI Web应用程序(如Django),对于那些因为这个问题而访问这个页面的人,这里是解决方法:

我现在正在使用waitress,它是一个非常好的替代方案 :)

基本上,你只需要用以下代码替换gunicorn的调用:

waitress-serve --listen=*:8000 myapp.wsgi:application

对于典型的应用程序,这将为您提供与运行gunicorn相同的结果。 :) 祝你好运!


8
太好了,正是我所期望的! - grovduck
9
非常适合我的需求,无需更改任何其他代码,谢谢!尽管我最终使用了waitress.serve(app, listen='0.0.0.0:5003'),其中5003是我自定义的端口,而appapp = Flask(__name__) - Shane Smiskol
16
这是那种让 StackOverflow 优秀的答案之一。 - ColinMac
1
任何想要部署到Heroku的人,请在推送到Heroku主分支之前尝试使用web: waitress-serve --port=$PORT myapp.wsgi:application(在Procfile中),如果您正在尝试在Heroku本地运行,请使用Hendy的答案,即指定一个端口。 - Julkar9

92

Gunicorn适用于UNIX环境,与Windows不兼容。

如需更多信息,请参阅其文档


6
请看下面我的回答,Cygwin支持很快就会到来。 - Philippe Ombredanne
Gunicorn 明确指出了这一点,但 Uvicorn 的所有文档在 Github、PyPI 或 uvicorn.com 上都没有提到 Linux 要求。 - Ryan McGrath

27

10

gunicorn曾经不能直接在Windows上运行,但是通过一些工作(并且待解决的问题),你可以在Cygwin上使它运行。

请参见https://github.com/benoitc/gunicorn/issues/407 ....

(注:我更新了此答案,因为该错误现已得到修复)


在Windows 10上使用Windows Subsystem for Linux(WSL)是现今可行的Cygwin替代方案(如果不更好)。 - wp78de

6

Gunicorn不支持Windows,不过你可以使用waitress


5

我正在尝试使用FASTAPI在Windows上构建ASGI应用程序。 FASTAPI在Gunicorn和Uvicorn服务器上运行。我阅读了FASTAPI 文档,以找出如何在Windows上部署我的应用程序。他们建议使用Docker从Windows部署应用程序。这是在Windows上使用Gunicorn的最佳方法。


3
在Windows上,您可以像这样安装Guvicorn:
pip install uvicorn gunicorn

然后,使用https://www.uvicorn.org/中提供的标记运行您的服务器。例如:

uvicorn myproject.asgi:application --host 127.0.0.1 --port 80 --reload

这是我在生产环境中使用的方法,并且保持一致以提供我的Django ASGI应用程序。


如何在Windows上以守护进程模式运行uvicorn? - jeevu94

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接