仅供参考,我是Python的新手,它的打包和依赖工具似乎令人困惑。
我将编写一系列Python软件包,这些软件包支持在Apache Airflow中运行的Dags。由于这些软件包共享一些通用功能,因此我想将这些通用性提取到单独的支持模块中。反过来,这些支持模块将依赖至少两个其他支持模块。所有有问题的模块/软件包都将作为源分发发布在内部存储库中。
我是否可以安装主软件包,以使所有直接和间接依赖项都从私有存储库中安装?
我已经使用setup.py中的 install_requires 来安装可通过Pypi使用的模块,看来我可以做这样的事情来实现自己的目标,但是当它出现时,可能会变得混乱我需要更新说一下间接依赖的版本。有没有更好的方法可以解决这个问题?使用-extra-index 参数将依赖项添加到 requirements.txt 是有效的方法吗?
依赖关系的层次结构可以宽松地表示为:
MainPackage
-> SupportingPackage
-> CommonUtilites
答案 0 :(得分:0)
可以将git存储库用作Python软件包源。
只需在git+{REPO_LINK}@{TAG_OR_SHA1}
中添加requirements.txt
,然后仅添加pip install -r requirements.txt
。