【问题标题】:Bundle two Python packages together将两个 Python 包捆绑在一起
【发布时间】:2014-09-10 22:03:46
【问题描述】:

我有一个 Python 包 myapp,它依赖于一个 Python 包 theirapp

theirapp 被其他人使用,可能会偶尔更新,但它不托管在 PyPI 上。

我目前的存储库设置如下:

my-app/
    myapp/
        __init__.py
    requirements.txt
    their-app/
        setup.py
        theirapp/
            __init__.py

我的requirements.txt 文件包含以下行(除其他外):

./their-app/

their-app 未托管在 PyPI 上,但我想确保已安装最新版本。到目前为止,我一直在下载一个包含 my-app 的 zip 文件并输入 pip install -U requirements.txt 并手动使用该应用程序。

我想做一个可安装的 Python 包。理想情况下,我想下载一个my-app.zip 文件并输入pip install my-app.zip 以安装myapptheirapp 和任何其他依赖项。

这可能吗?如果没有,处理这种情况的最佳方法是什么?

【问题讨论】:

    标签: python setuptools software-packaging


    【解决方案1】:

    您可能只需要将theirapp 捆绑为项目的一部分并将其导入为myapp.contrib.theirapp。如果两个项目都在 git 中进行版本控制,您可以将其隐含为 submodule,但这可能会增加维护者的复杂性。

    pip 如何处理类似问题: https://github.com/pypa/pip/tree/develop/pip/_vendor

    您可以看到 pip 将捆绑的供应商包导入为pip._vendor.theirapp

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-29
      • 2013-11-24
      • 1970-01-01
      • 2017-01-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多