我写了一篇关于如何使用 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 之前将其添加到规范文件中,方法是在 setup 调用中提供此选项:
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