如何维护库的多个版本

2024-04-16 18:42:48 发布

您现在位置:Python中文网/ 问答频道 /正文

对于在Python环境中维护一个库的多个版本,有什么实用的解决方案吗?在

例如,我有一个使用可插拔设计的Web框架。在这个框架下,可以注册多个应用程序(应用程序和框架在同一个python进程中运行)。在

每个应用程序都有自己的业务逻辑代码和通用代码,比如common_httplib。问题是如何确保common_httplib的多个版本不会相互冲突?在

每个应用程序都应该使用自己的common_httplib副本,但版本不同。绝对导入、import hook、imp等不起作用,因为common_httplib可能导入其他第三方库,这些库可能有相同的版本问题。在

下面是应用程序的代码结构。在

$FRAMEWORK_HOME/apps/下,有:

/app1
    /common_httplib (version 1)
    /third_party libs
    /app1 BLO code
/app2
    /common_httplib (version 2)
    /third_party libs
    /app2 BLO code

Tags: 代码版本框架应用程序环境versionpartycode
2条回答

在Python2.6中,Python2.7库unittest作为unittest2被后传到2.6,因此Python2.6同时拥有这两个库。

测试模块可以选择将unittest与以下内容一起使用:

import unittest

unittest2,具有高级功能,包括:

^{pr2}$

你可以用类似的方式来指定你的依赖项和依赖项。

不,在同一个应用程序中无法这样做。

请注意,例如,Plone是一个大型项目,它的部署依赖于数百个包,它将所有相关包的“已知良好版本”调整为定义版本的主要内容。

“正确的做法”是根据另一个产品“B”的旧版本,为所有产品“a”提交一份缺陷报告,以便它们能够与“B”的较新版本一起工作,并准备修补程序来修复这些缺陷。(当错误报告不被接受时,您可以使用修复程序运行部署)

您也可以考虑使用进程间通信(如xmlrpc)将应用程序拆分为多个进程,但这取决于您在做什么,以及冲突包的性质。

相关问题 更多 >