导入特定于版本的python模块的最佳方法

2024-05-29 03:08:50 发布

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

哪种方法对于在python中导入特定于版本的模块最有意义?我的用例是,我正在编写代码,这些代码将部署到Python2.3环境中,并在几个月内升级到Python2.5。这:

if sys.version_info[:2] >= (2, 5):
    from string import Template
else:
    from our.compat.string import Template

或者这个

try:
    from string import Template
except ImportError:
    from our.compat.string import Template

我知道这两种情况都是正确的,但哪种情况更可取?


Tags: 模块方法代码fromimport版本string环境
3条回答

我可能会说第二个比较好。有时,可以将较新版本的python中的模块安装到较旧版本中。例如,wsgiref附带了Python 2.5,但将其安装到较旧版本中并不少见(我认为它将与python2.3一起使用)。

总是第二种方法-您永远不知道将安装哪些不同的Python安装。Template是一个不太重要的特定情况,但是当您测试功能而不是版本控制时,您总是更健壮。

这就是我如何使Testoob支持Python 2.2-2.6:我尝试以不同的方式导入模块,直到它工作。它也与第三方图书馆有关。

下面是一个极端的例子-支持ElementTree出现的不同选项:

try: import elementtree.ElementTree as ET
except ImportError:
    try: import cElementTree as ET
    except ImportError:
        try: import lxml.etree as ET
        except ImportError:
            import xml.etree.ElementTree as ET # Python 2.5 and up

相关问题 更多 >

    热门问题