如何处理以Python实现的复杂系统的依赖性管理

时间:2020-06-25 12:54:26

标签: python pip virtualenv pypi software-distribution

我们开发了一个包含许多不同的Python脚本和模块的系统。有些部署到自托管的PyPI中,有些则简单打包到zip文件中(存储在自托管的Artifactory中)。最后,还有另一个应用程序(不是我们开发的),它使用我们的某些Python脚本作为插件。因此,我猜想对于python环境,依赖关系图相当复杂。以下代码段应解释该图:

Script (own, zip package)
    Module (own, pypi)
        Module (external, pypi)
Module (own, pypi)
    Module (external, pypi)

这只是一个示例,实际上,存在更多的依赖项。但最后,它是zip打包和pypi打包的Pyhton脚本和模块的混合体。 pypi模块的依赖性通过setup.py中的setuptools install_requires参数进行管理。但是zip打包脚本的依赖关系是通过自我实现的配置和安装脚本来管理的。

最后,我们有了安装脚本,该脚本创建一个虚拟环境并在其中安装所有依赖项。通过pip或简单下载zip文件并将其放在正确的目录中。但老实说,这感觉有点怪异,我们不确定这是否是正确的方法。

我们已经通过互联网搜索了几天,但没有找到答案。同样如此,用Python实现如此复杂的系统是非常罕见的吗?因此,最后一个问题是:我们的方法是正确的方法还是不是真的“正确的方法”?还是我们的方法完全错误?

0 个答案:

没有答案
相关问题