我在业余时间正在编写django应用程序,以参加我们正在开展的艰巨竞赛。我认为我会明智地使用这段时间,并加快使用virtualenv,pip,打包,django 1.3以及如何编写易于重新分发的应用程序的速度。到现在为止还挺好。
我要负责包装部分。例如,GitHub上的许多django应用程序大多数都(大致)以相同的方式捆绑在一起。我将以django-uni-forms为例。
我所做的一个假设是,MANIFEST.in和setup.py是pip完成工作所需的唯一必需的部分。那是对的吗?如果我的假设是错误的,还需要哪些其他组件?
MANIFEST.in
setup.py
是否通常生成了所需的包装文件,或者是手工制作的?可以描述依赖项然后再安装吗?我的应用程序依赖django-uni-forms,并且在requirements.txt我用来安装依赖项的应用程序文件中列出了它;但这是包装系统可以解决的问题吗?
django-uni-forms
requirements.txt
我需要遵循哪些步骤来打包我的应用程序,以使pip能够安装它和任何依赖项?
是的,MANIFEST.in而且setup.py应该是足够的。
这篇博客文章确实具有有关此主题的一些很好的信息: 打包Django可重用应用程序
这是另一个很好的详细概述,对我有很大帮助: Python打包用户指南
尤其是包含静态文件(模板)的提示很重要,因为起初可能并不明显。
是的,你可以在setup.py其中指定所需的软件包,这些软件包在安装应用程序时会自动获取。
例如:
install_requires = [ 'django-profiles', 'django-uni-forms', ],