如何为不同版本的程序库创建通用的程序代码?
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'
然后您可以使用 case
s、if
s 或其他东西来 运行 您需要的功能。
例如:
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()
我用的是一个软件库,不同版本的库函数名称不同
我尝试使用以下代码:
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'
然后您可以使用 case
s、if
s 或其他东西来 运行 您需要的功能。
例如:
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()