在发行包中使用virtualenv部署Django?

时间:2010-11-03 10:40:22

标签: django deployment virtualenv rpm pip

我必须将一个Django应用程序部署到SuSE Linux Enterprise 11系统上。公司规则说我只需要使用RPM进行部署。虽然我可以为每个依赖项使用./setup.py bdist_rpm,但它并不是真正理智,因为RPM还没有记录所有依赖项。因此,我没有使用RPM的真正优势,手动管理依赖项有点麻烦,我想避免它。

现在我有了以下想法:在构建包时,我可以创建一个virtualenv,通过pip安装我的所有依赖项,然后将其与其余代码打包成一个实体RPM。

这种方法有多明智?

1 个答案:

答案 0 :(得分:2)

我已经使用这种方法大约一年了,而且效果很好。

一个问题是,您需要查看写入virtualenv的bin目录的任何python脚本中的爆炸线。这些将最终成为构建环境中使用的完整路径名,这可能与您最终安装virtualenv的目录不同。因此,您可能需要在RPM的postinstall中添加一些sed调用来调整路径。