我有一个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
并输入pip install -U requirements.txt
并手动使用该应用程序的zip文件。
我想制作一个可安装的Python包。理想情况下,我想下载my-app.zip
文件并输入pip install my-app.zip
来安装myapp
,theirapp
以及任何其他依赖项。
这可能吗?如果没有,处理这种情况的最佳方法是什么?
答案 0 :(得分:1)
您可能只需将theirapp
捆绑为项目的一部分,然后将其导入为myapp.contrib.theirapp
。如果这两个项目都是在git中进行版本控制,那么你可以将它作为submodule来实现,但它可能会增加维护者的复杂性。
pip如何处理类似的问题: https://github.com/pypa/pip/tree/develop/pip/_vendor
您可以将pip导入捆绑的供应商软件包视为pip._vendor.theirapp
。