Python 金字塔角和女服务员
我试图了解Pyramid关于Python 金字塔角和女服务员,python,pyramid,gunicorn,ini,waitress,Python,Pyramid,Gunicorn,Ini,Waitress,我试图了解Pyramid关于[main:server]配置和gunicorn的行为 如果我使用pserve,它将使用[main:server]的配置,用于女服务员和gunicorn。例如: # development.ini [server:main] use = egg:waitress#main listen = *:6543 现在,$pserve development.ini将与waitess一起启动该项目,这是预期的。但是如果我使用命令$gunicorn(ini文件中有gunico
[main:server]
配置和gunicorn的行为
如果我使用pserve
,它将使用[main:server]
的配置,用于女服务员和gunicorn。例如:
# development.ini
[server:main]
use = egg:waitress#main
listen = *:6543
现在,$pserve development.ini
将与waitess一起启动该项目,这是预期的。但是如果我使用命令$gunicorn
(ini文件中有gunicorn或waitress),它也会工作,这是我所不希望的
我的问题是:
- 如果我运行命令
,为什么这个配置会起作用$gunicorn--paste development.ini
- 钩下会发生什么?女服务员在工作吗?(我会说这不是根据我电脑中的进程)
- 对于金字塔应用程序,必须使用
[main:server]
- 如果使用gunicorn运行应用程序,则必须定义此
[main:server]
- gunicorn将忽略
属性,但pyramid将检查鸡蛋是否存在use
- gunicorn将使用其余的设置(如果有),但它们的优先级低于命令行参数或config.py文件
这种行为背后的原因仍然让我感到困惑,但至少我可以解决它。任何其他提示都将不胜感激。开始为任何WSGI应用程序提供请求时,需要两个独立的配置 1) 使用哪个WSGI应用程序 2) 使用哪个WSGI服务器
这些部件是单独处理的,可以根据设置方式以不同的方式进行处理。ini文件格式由PasteDeploy库定义,并为格式使用者提供了一种确定应用程序配置和服务器配置的方法。但是,当使用
gunicorn--paste foo.ini
时,您已经告诉gunicorn您想要使用gunicorn服务器(而不是女服务员),因此它忽略了服务器部分,只关注加载应用程序。Gunicorn实际上也有其他加载应用程序的方法,但我现在将忽略这一复杂性,因为这一部分是为您工作的。gunicorn的任何服务器配置都需要单独完成。。。从cli运行gunicorn
时,它不会读取[server:main]
部分。或者,您可以使用pserve
启动您的应用程序,其中使用服务器部分来确定要使用的服务器-但在您当前的设置中,将运行waiteress而不是gunicorn。感谢您的回答。这或多或少是我得出的结论,除了一件事:即使使用“gunicorn--paste file.ini”,我也必须配置一个有效的[main:server]>使用,否则pyramid会抱怨(尽管我看到gunicorn没有使用此信息来运行)。从我的观点来看,这似乎有点不连贯。是的,查看gunicorn代码,它将尝试从该部分读取配置。我真的认为这是一个错误,没有那部分崩溃。