如何为程序库的不同版本创建通用程序代码?

时间:2019-05-07 12:14:28

标签: python python-3.x libraries

我使用的软件库在不同版本的库中具有不同的功能名称。

我尝试使用以下代码:

some_variable = module.old_name_of_function()

但是此代码仅适用于程序库的旧版本。

我计划在安装了不同版本软件库的不同计算机上使用代码。

某些计算机安装了新版本的程序库,并且应在其中使用以下代码:

some_variable = module.new_name_of_function()

如果我在新版本的库中使用old_name_of_function(),则会收到错误消息。

如何解决此问题?

2 个答案:

答案 0 :(得分:1)

您可以为其使用pkg_resources模块(例如numpy的示例):

import pkg_resources
pkg_resources.get_distribution("numpy").version

将返回:

'1.15.2'

然后,您可以使用caseif或其他方式来运行所需的功能。

例如:

import pkg_resources
version = pkg_resources.get_distribution("numpy").version
v = version.split('.')

if int(v[0]) == 1 and int(v[1]) < 17:
    print('WAKA')
else:
    print('NEW WAKA')

将为numpy的每个1.X版本打印'WAKA',其中X <17。

答案 1 :(得分:1)

我想你可以

try:
    my_func = module.old_name_of_function
except AttributeError:
    my_func = module.new_name_of_function

some_variable = my_func()