【发布时间】:2015-12-07 02:02:34
【问题描述】:
我正在尝试编写一个向前兼容的程序,我想知道在需要不同导入的情况下,处理这种情况的“最佳”方法是什么。
在我的具体情况下,我使用 Python2 中的 ConfigParser.SafeConfigParser(),它在 Python3 中变为 configparser.ConfigParser()。
到目前为止,我已经通过在导入时使用 try-except 或在 Python 版本上使用条件(使用 sys)使其工作。两者都有效,但我想知道是否有推荐的解决方案(也许我还没有尝试过)。
预计到达时间:
感谢大家。我使用six.moves 没有问题。
【问题讨论】:
-
除了python版本之外,导入可能引发异常的原因还有很多!所以以 sys.version_info 为条件一定是这两个想法中更好的一个。
-
@nigel222 从标准库导入不应抛出异常;如果他们这样做你有更大的问题。版本检查更脆弱,什么也得不到。
-
它并不仅仅与标准库有关,而不是一般的条件导入。此外,“更大的问题”比您想象的更常见,如果系统是由没有 IT 背景的人(业余爱好者、大学研究员等)维护的桌面,我更愿意直接了解它们,而不是必须调试“曾经工作”的错误导入!
标签: python python-3.x import module compatibility