Python 3.x 如何正确处理私有python包依赖关系?

Python 3.x 如何正确处理私有python包依赖关系?,python-3.x,package,Python 3.x,Package,仅供参考,我对Python非常陌生,它的打包和依赖性工具似乎令人困惑 我将编写一系列Python包,这些包支持在Apache中运行的DAG。由于这些软件包共享一些共同的功能,我想将这些共同点提取到单独的支持模块中。反过来,这些支持模块将依赖于至少两个其他支持模块。所有有问题的模块/包都将作为源发行版发布在内部存储库中 我是否有办法安装主软件包,以便所有直接依赖项和间接依赖项都是从私有repo安装的 我已经使用setup.py中的install\u requires来安装通过Pypi提供的模块,似

仅供参考,我对Python非常陌生,它的打包和依赖性工具似乎令人困惑

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

我是否有办法安装主软件包,以便所有直接依赖项和间接依赖项都是从私有repo安装的

我已经使用setup.py中的install\u requires来安装通过Pypi提供的模块,似乎我可以这样做来实现我的目标,但是当我需要更新间接依赖项的版本时,这看起来可能会变得混乱。我有没有更好的办法来处理这件事?使用--extra index参数将依赖项添加到requirements.txt是一种有效的方法吗

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

MainPackage
  -> SupportingPackage
    -> CommonUtilites

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

只需在
requirements.txt
中添加
git+{REPO\u LINK}{TAG\u或\u SHA1}
,然后只需
pip安装-r requirements.txt