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

2024-06-07 14:57:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我在业余时间写一份django的申请书,准备参加一个我们正在进行的足底小费竞赛。我想我会明智地利用这段时间,并在virtualenv、pip、packaging、django 1.3以及如何编写一个易于再发行的应用程序上加快速度。到目前为止,还不错。

我负责包装部分。例如,GitHub上的许多django应用程序基本上都是以相同的方式捆绑的。我将以django-uni-forms为例。

我假设MANIFEST.insetup.py是pip完成其工作所需的惟一部分。是这样吗?如果我的假设是错误的,还有什么其他的因素是必要的?

所需的打包文件通常是生成的,还是手工制作的?是否可以描述依赖关系,然后再安装?我的应用程序依赖于django-uni-forms,我已经在我的应用程序中的requirements.txt文件中列出了它,我曾经用它来安装依赖项;但是这是打包系统可以处理的吗?

我需要遵循哪些步骤来打包我的应用程序,使pip能够安装它和任何依赖项?


Tags: pip文件djangogithub应用程序利用virtualenv方式
1条回答
网友
1楼 · 发布于 2024-06-07 14:57:33

是的,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

使用此设置,您的包应该可以通过^{}进行安装。


正如皮埃尔在评论中指出的,现在Django的官方文档中还有一个相关的部分:Packaging your app

然后有一个“完全不完整”的指南,它对打包和将包上载到PyPI提供了一个很好的概述:Sharing Your Labor of Love: PyPI Quick And Dirty

相关问题 更多 >

    热门问题