如何打包python应用程序,使其可以安装pip?

问题:

我在业余时间写了一个django应用程序,用于在工作中进行的大型竞争。我想我会明智地使用这个时间,并加快对virtualenv,pip,packaging,django 1.3的速度,以及如何编写一个容易重新分发的应用程序。到现在为止还挺好。
我正在包装部分。例如,GitHub上的很多django应用程序大多是捆绑的(大致)相同的方式。以django-uni-forms为例。
我所做的一个假设是MANIFEST.insetup.py是需要完成工作的唯一必需的部分。那是对的吗?如果我的假设错了,还需要什么其他组件?
所需的包装文件是否通常生成,或者是手工制作?可以依赖关系进行描述,然后再安装?我的应用程序取决于django-uni-forms,我将其列在我的应用程序中的requirements.txt文件中,我用来安装依赖项;但是包装系统能够照顾的东西呢?
我需要遵循哪些步骤来打包我的应用程序,以便点数能够安装它和任何依赖关系?

回答:

是的,MANIFEST.insetup.py应该是足够的。
这篇博客文章真的有一些关于这个主题的好的信息:
 Packaging a Django reusable app
这是另一个很好的,详细的概述,帮助我很多:
 Python Packaging User Guide
特别是包含静态文件(模板)的提示很重要,因为这可能不是很明显的。
是的,您可以在setup.py中指定要在安装应用程序时自动获取的软件包。
例如:

    install_requires = [
        'django-profiles',
        'django-uni-forms',
    ],

显然现在我们有两个地方定义了依赖关系,但并不一定意味着这些信息是重复的:setup.py vs requirements.txt
通过此设置,您的包应通过pip安装
正如皮埃尔在评论中指出的,Django的官方文档中现在还有一个相关部分:Packaging your app
然后有这个“完全不完整”的指南,它真正给包装和上传一个包到PyPI的很好的概述:Sharing Your Labor of Love: PyPI Quick And Dirty

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: How do I package a python application to make it pip-installable?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

44 − = 35