Я написал сообщение в блоге о том, как использовать setuptools, и это команда bdist_rpm , чтобы создать rpm для вас.Так что, действительно, используйте setuptools, но на самом деле распространяйте ваше приложение как rpm.Есть несколько ловушек и странных недокументированных вещей в setuptools, которые вы можете использовать, чтобы в итоге получить хороший рабочий процесс.
Ключ в том, что вам нужен сценарий после установки, который запускает ваши миграции и собирает ваши статические файлы, которыезапустить после установки rpm
export DJANGO_SETTINGS_MODULE=accountpage.settings
mkdir -p /var/www/django/static && chown apache:apache /var/www/django/static
runuser -m apache -c 'echo "yes" | django-admin collectstatic'
django-admin migrate
service httpd restart
, и вы можете указать setuptools добавить его в файл спецификации перед тем, как он создаст rpm, задав эту опцию в вызове установки:
options = {'bdist_rpm':{'post_install' : 'bdist_rpm_post_install.sh'}},
См. Ссылку выше для полного рабочего скрипта setup.py, хука после установки и комплекта тестов, который работает с python setup.py test
, который установит все ваши зависимости локально и запустит тесты django.
Чтобы rpm также автоматически устанавливал свои зависимости, создайте файл setup.cfg
, который сообщает bdist_rpm о его зависимостях
[bdist_rpm]
requires = python >= 2.7
django >= 1.8
httpd
Django-Select2 >= 4.3.1
django-easy-select2
django-model-utils
pytz
django-oauth-toolkit