Сборка скрипта wsgi для Flask с помощью zc.buildout

Я создаю приложение с сервисами Rest на базе Flask. И я хочу, чтобы он был развернут с помощью Apache/mod_wsgi, как описано здесь: http://flask.pocoo.org/docs/deploying/mod_wsgi/

Но я застрял в создании файла myapp.wsgi, который требуется от Apache. В частности, я не могу добиться настройки sys.path, чтобы можно было включить все яйца из сборки, необходимые для моего приложения. Рецепты, которые я нашел, требуют PasteScript и PasteDeploy, которые мне не нужны в моем программном стеке.

import sys
sys.path[0:0] = [
    # How to compute the paths to add since I need 'foo' and 'bar' eggs
    # that are created by buildout ?
    ]
from foo import app as application

person user1737561    schedule 11.10.2012    source источник


Ответы (1)


Лучше всего использовать PasteDeploy и коллективный.recipe.modwsgi http://pypi.python.org/pypi/collective.recipe.modwsgi/

Простой .ini-файл:

[app:main]
paste.app_factory = foo.app:make_app

И в вашем коде:

def make_app(global_conf, **local_conf):
     return application
person gawel    schedule 17.02.2013
comment
Привет, gawel, так как я не хотел добавлять PasteMonster в свой стек wsgi, я сделал свой собственный мини-рецепт, используя z3c.recipe.runscript (чертовски полезно, когда вам нужны экстремальные вещи, которые не поддерживаются известными рецептами). - person user1737561; 21.06.2013
comment
Если это может помочь кому-то еще, вот что в файле buildout.cfg. ‹!-- language: lang-none --› [wsgiscript] # Создание скрипта для Apache / mod_wsgi recipe = z3c.recipe.runscript install-script = ${buildout:directory}/buildouthelpers.py:make_wsgi_script update-script = ${:install-script} # Параметры скрипта egg = loix.xqueryproxy script = ${buildout:parts-directory}/wsgiscript/xqueryproxy.wsgi app = loix.xqueryproxy.app.app - person user1737561; 21.06.2013
comment
Я создал рецепт на основе collective.recipe.modwsgi, который не требует вставки - pypi.python.org/pypi /mk.recipe.modwsgi - person k4ml; 02.12.2013