slav0nic
Устанавливаете то как?
Если setup.py install, то банально setuptools.command.install переопределить и пробросить в cmdclass параметр setup(), но если всё это ставится через pypi и pip (а не свои пакеты), то никаких хуков и всяких post-install скриптов (аля deb/rpm) там увы нет.
Но не проще и добавить свою команду в Makefile тотже и дёргать руками регистрацию модуля? Или же paver/buildout глянуть.
А вообще, желания порочные В)
Устанавливаем через easy_install или setup.py, это не столь важно. Приложение ставится и подключаем его в *.ini файл. Проблема именно в populate базы. Во время установки стандартно создается скрипт populate_имя_приложения. Этот скрипт нужно запускать ручками натравливая ini файл. Задача обойтись без этого скрипта, чтобы populate происходил автоматом во время setup.
Сейчас populate базы происходит в includeme приложений, вот так:
from app_core.models import DBSession, Base
from sub_app.models import *
def includeme(config):
#{ populate db
Base.metadata.create_all(DBSession.get_bind(), tables=[Model1.__table__, Model2.__table__])
#} populate db
то есть база обновляется после рестарта приложения, а не вовремя установки. Работет конечно, но сие решение кажется не красивым.