如何通过RPM分发Python / Django App
我已经阅读了这个问题,我认为这是一个很好的开始,但我正在寻找更多的洞察力。
我使用Python 2.6和Django 1.2.1编写了一个应用程序。
我想在没有安装Python 2.6或Django的系统上部署此应用程序。系统本身并没有安装很多东西 - sqlite3,pysqlite2,gcc等。但系统确实有Python 2.4.3。
什么是创建Python 2.6,Django和我的应用程序本身(一个标准的Django应用程序)的RPM最理智的方式,以便每个可以单独安装,以允许升级不同的组件?
我不太了解创建源RPM,但我怀疑这是可用的信息。如果有任何特别好的资源来创建源RPM,我也会很感激。
如果重要,系统是ESX 4 Update 1。
谢谢!
更新:
我从未想过,分发Python egg甚至使用setup.py是内容分发的可行解决方案。我也有兴趣听到这个消息。
没有找到相关结果
已邀请:
5 个回复
凸晴
(可选地使用特定版本号)安装每个python包(以及它的依赖项)。我建议你使用setuptools作为我们的主要分发方法,因为: 它适用于所有平台 一般来说,它是Python包的首选方式 .rpm或.deb安装脚本也可以重用它的一部分 您可以在virtualenv中安装此软件包,而无需root权限,服务器上已安装的其他Web应用程序无冲突 您可以阅读的一个很好的资源是Deploying with Distribute。它专注于Flask(另一个Web框架),但只需将“Flask”替换为“Django”就可以了 另一个非常适合分发和部署东西的python工具是fabric,你可以使用它除了分发(或者没有它,你想要的)。使用结构,您可以立即在N个服务器上引导和安装应用程序(包含依赖项),管理多个开发,测试和生产服务器,并使用单个命令同时更新它们。 本文可能会帮助您开始使用Fabric:使用Fabric进行部署 此外,我还建议您在github或bitbucket上发布您的存储库(或镜像现有的存储库),以便那些想要手动获取最新资源并随后使用
安装应用程序的人员。 setup.py安装脚本是我之前提到的分发的一部分。
缔恃钨
下安装 使用
从
加载设置 巨大的翻译处理周期 替换安装后脚本中的密钥 所有其他所需的血腥变化和软糖
街茬
扫窟
席酱
你可以通过在setup调用中给出这个选项,告诉setuptools在创建rpm之前将它添加到spec文件中:
请参阅上面的链接,查看完整的setup.py脚本,安装后挂钩以及与ѭ7一起使用的测试套件,它将在本地安装所有依赖项,并运行django测试。 要让rpm也自动安装它的依赖项,创建一个
文件告诉bdist_rpm它的依赖项