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

标签 python django dependencies pip

我在业余时间编写了一个 django 应用程序,用于我们在工作中举办的足球小费比赛。我想我会明智地利用这段时间,并快速了解 virtualenv、pip、打包、django 1.3 以及如何编写一个易于再分发的应用程序。到目前为止,一切顺利。

我负责包装部分。例如,GitHub 上的许多 django 应用程序大多(大致)以相同的方式捆绑在一起。我将使用 django-uni-forms举个例子。

我做的一个假设是 MANIFEST.insetup.py 是 pip 完成其工作所需的唯一部分。那是对的吗?如果我的假设是错误的,还需要哪些其他组件?

所需的打包文件一般是生成的,还是手工制作的?可以描述依赖关系然后安装吗?我的应用程序依赖于 django-uni-forms,我将它列在了我用于安装依赖项的应用程序内的 requirements.txt 文件中;但这是包装系统可以处理的事情吗?

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

最佳答案

是的,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 安装.


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

然后是这个“完全不完整”的指南,它确实很好地概述了打包和上传包到 PyPI:Sharing Your Labor of Love: PyPI Quick And Dirty

关于python - 如何打包 python 应用程序以使其可 pip 安装?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5360873/

相关文章:

python - 如何将 Celery worker 连接到 Django 测试数据库

mysql - 带断线的 django + mysql 文本字段格式

caching - Jenkins 禁用或清除 Maven 构建的缓存

android - 我最近更新了我的android studio,在创建新项目时出现了2个错误

python - 将 CIFAR 1d 数组从 pickle 转换为图像 (RGB)

python - py.test -n <进程数> => "py.test: error: unrecognized arguments: -n"

python - Teradata Python 模块游标结果集在一次迭代后耗尽

java - 安装程序未找到 Maven 依赖项,但它位于本地存储库中

python - Django : Long Object Attribute Error

python - Python 中的 'in' 运算符是 "lazy"吗?