在 RHEL 上使用 python 2.7 安装 Django App RPM

Installing a Django App RPM with python 2.7 on RHEL

由于 RHEL 附带 python 2.6,我使用 chef 在 /usr/local/bin 下安装 python 2.7(非常标准的东西)。

到目前为止,我们一直在部署带有结构和远程 git 拉取调用的 Django 应用程序。我正在尝试通过 IMO 更清洁的 RPM 安装它。

我已经将 setup.py 脚本和相应的 MANIFEST.in 组合在一起,以组合包、html 和静态文件。我使用 python setup.py bdist_rpm,到目前为止一切都很好。

检查在 <project_root>/build/SPECS/App.spec 下生成的规范文件后,安装指令有

%install
python setup.py install --single-version-externally-managed -O1 - root=$RPM_BUILD_ROOT --record=INSTALLED_FILES

有什么方法可以更改 setup.py 文件,使 SPEC 生成为

%install
/usr/local/bin/python2.7 setup.py install --single-version-externally-managed -O1 --root=$RPM_BUILD_ROOT --record=INSTALLED_FILES

我通过查看 Django 存储库找到了答案。其中有文件 setup.cfg

[bdist_rpm]
doc_files = docs extras AUTHORS INSTALL LICENSE README.rst
install-script = scripts/rpm-install.sh

rpm-install.sh 脚本中有:

# This is what dist.py normally does.
%{__python} setup.py install --root=${RPM_BUILD_ROOT} --record="INSTALLED_FILES"

所以我用 /usr/local/bin/python2.7 替换了 %{__python} 并且成功了!