Standard solution for supporting Python 2 and Python 3
我正在尝试编写一个向前兼容的程序,我想知道在需要不同的导入的情况下,处理这种情况的"最佳"方法是什么。
在我的具体案例中,我使用的是来自python2的
到目前为止,我已经使它工作起来,要么使用一个try(导入时除外),要么使用一个条件化的python版本(使用
埃塔:谢谢大家。我用了
使用六!它是一个python兼容模块,可以消除python3和python2之间的差异。这里提供的文档将帮助您解决此问题以及其他问题。
具体来说,你可以
1 2 3 4 5 6 7 | from six.moves import configparser import six if six.PY2: ConfigParser = configparser.SafeConfigParser else: ConfigParser = configparser.ConfigParser |
你会很高兴去的。
这种模式相当标准:
1 2 3 4 | try: from configparser import ConfigParser except ImportError: from ConfigParser import SafeConfigParser as ConfigParser |
您也可以这样做:
1 2 3 4 5 | import sys if sys.version[:1] == '2': from configparser import ConfigParser else: from ConfigParser import SafeConfigParser as ConfigParser |
在这里阅读更多。