将两个Python包捆绑在一起



我有一个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和任何其他依赖项。

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

您可能只需要将theirapp绑定为项目的一部分,并将其导入为myapp.contrib.theirapp。如果这两个项目都是用git进行版本控制的,您可以将其作为子模块来实现,但这可能会增加维护人员的复杂性。

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

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

相关内容

  • 没有找到相关文章

最新更新