我使用的软件库在不同版本的库中具有不同的功能名称。
我尝试使用以下代码:
some_variable = module.old_name_of_function()
但是此代码仅适用于程序库的旧版本。
我计划在安装了不同版本软件库的不同计算机上使用代码。
某些计算机安装了新版本的程序库,并且应在其中使用以下代码:
some_variable = module.new_name_of_function()
如果我在新版本的库中使用old_name_of_function()
,则会收到错误消息。
如何解决此问题?
答案 0 :(得分:1)
您可以为其使用pkg_resources
模块(例如numpy的示例):
import pkg_resources
pkg_resources.get_distribution("numpy").version
将返回:
'1.15.2'
然后,您可以使用case
,if
或其他方式来运行所需的功能。
例如:
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()