Я создаю приложение, используя веб-фреймворк Pyramid, и во всей документации предполагается, что вы будете устанавливать приложение как яйцо, используя setup.py
.Хотя это имеет смысл для распространяемого пакета, он добавляет много служебных и ненужных пакетов кода для приложения, которое не предназначено для совместного использования в качестве библиотеки или расширения.
Пирамида использует PasteDeploy
для чтения приложенияфайлы конфигурации (.ini
) и требует раздела для определения того, какое приложение должно быть запущено:
[app:blog]
use = egg:MyBlog#main
database = mysql://localhost/blogdb
blogname = This Is My Blog!
Это говорит загрузчику приложения импортировать библиотеку с именем MyBlog
, найденную на PYTHONPATH
, и использоватьточка входа с именем main
, определенная в конфигурации setup.py
.
Есть ли способ напрямую обратиться к приложению по пути и указать точку входа WSGI (аналогично тому, как вы запускаетеприложение напрямую через:
cd /path/to/MyBlog
gunicorn --bind etc... app:main
Существует дополнительный синтаксис, начинающийся с call:
, который позволяет указать точку входа, которая не была зарегистрирована с setuptools
:
[app:mythirdapp]
use = call:my.project:myapplication
Однако, похоже, что загрузчик все еще ожидает пакет, установленный по пути python, а не пустой пакет / исполняемый файл python.