0

我有一个 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.zipinstallmyapp以及theirapp任何其他依赖项。

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

4

1 回答 1

1

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

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

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

于 2014-09-10T22:45:10.313 回答