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

How to create a universal program code for different versions of a program library?

我用的是一个软件库,不同版本的库函数名称不同

我尝试使用以下代码:

some_variable = module.old_name_of_function()

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

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

部分电脑安装了新版本的程序库,需要使用以下代码:

some_variable = module.new_name_of_function()

如果我在新版本的库中使用old_name_of_function(),我会得到一个错误。

如何解决这个问题?

您可以使用 pkg_resources 模块(例如 numpy):

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

将return:

'1.15.2'

然后您可以使用 cases、ifs 或其他东西来 运行 您需要的功能。

例如:

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。

我想你可以做到

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

some_variable = my_func()