我在业余时间写一份django的申请书,准备参加一个我们正在进行的足底小费竞赛。我想我会明智地利用这段时间,并在virtualenv、pip、packaging、django 1.3以及如何编写一个易于再发行的应用程序上加快速度。到目前为止,还不错。
我负责包装部分。例如,GitHub上的许多django应用程序基本上都是以相同的方式捆绑的。我将以django-uni-forms为例。
我假设MANIFEST.in
和setup.py
是pip完成其工作所需的惟一部分。是这样吗?如果我的假设是错误的,还有什么其他的因素是必要的?
所需的打包文件通常是生成的,还是手工制作的?是否可以描述依赖关系,然后再安装?我的应用程序依赖于django-uni-forms
,我已经在我的应用程序中的requirements.txt
文件中列出了它,我曾经用它来安装依赖项;但是这是打包系统可以处理的吗?
我需要遵循哪些步骤来打包我的应用程序,使pip能够安装它和任何依赖项?
是的,
MANIFEST.in
和setup.py
应该足够了。这篇博文确实有一些关于这个主题的好信息: Packaging a Django reusable app
下面是另一个对我有很大帮助的好的、详细的概述: Python Packaging User Guide
特别是获取静态文件(模板)的技巧是很重要的,因为一开始这可能并不明显。
是的,您可以在
setup.py
中指定所需的包,这些包在安装应用程序时自动获取。例如:
显然,现在我们有两个地方定义了依赖项,但这并不一定意味着这些信息是重复的:setup.py vs requirements.txt
使用此设置,您的包应该可以通过^{} 进行安装。
正如皮埃尔在评论中指出的,现在Django的官方文档中还有一个相关的部分:Packaging your app
然后有一个“完全不完整”的指南,它对打包和将包上载到PyPI提供了一个很好的概述:Sharing Your Labor of Love: PyPI Quick And Dirty
相关问题 更多 >
编程相关推荐