如何正确处理私有python包的依赖关系?

时间:2019-05-14 21:42:23

标签: python-3.x package

仅供参考,我是Python的新手,它的打包和依赖工具似乎令人困惑。

我将编写一系列Python软件包,这些软件包支持在Apache Airflow中运行的Dags。由于这些软件包共享一些通用功能,因此我想将这些通用性提取到单独的支持模块中。反过来,这些支持模块将依赖至少两个其他支持模块。所有有问题的模块/软件包都将作为源分发发布在内部存储库中。

我是否可以安装主软件包,以使所有直接和间接依赖项都从私有存储库中安装?

我已经使用setup.py中的 install_requires 来安装可通过Pypi使用的模块,看来我可以做这样的事情来实现自己的目标,但是当它出现时,可能会变得混乱我需要更新说一下间接依赖的版本。有没有更好的方法可以解决这个问题?使用-extra-index 参数将依赖项添加到 requirements.txt 是有效的方法吗?

依赖关系的层次结构可以宽松地表示为:

MainPackage
  -> SupportingPackage
    -> CommonUtilites

1 个答案:

答案 0 :(得分:0)

可以将git存储库用作Python软件包源。

只需在git+{REPO_LINK}@{TAG_OR_SHA1}中添加requirements.txt,然后仅添加pip install -r requirements.txt

请参见How to add git source in requirements.txt