Стандартное решение для поддержки Python 2 и Python 3
Я пытаюсь написать программу, совместимую с переходом, и мне было интересно, что такое «лучший» способ справиться с ситуацией, когда вам нужен другой импорт.
В моем конкретном случае я использую ConfigParser.SafeConfigParser()
из Python2, который становится configparser.ConfigParser()
в Python3.
До сих пор я работал над ним либо с помощью попытки, за исключением импорта, либо с помощью условного выражения для версии Python (используя sys
). Обе работы, но мне было интересно, было ли рекомендованное решение (возможно, я еще не пробовал).
ETA: Спасибо всем. Я не использовал никаких проблем.
- Область Eval в Python 2 против 3
- Я оставил обучение Python из-за Python 2 против 3
- С каких пор функция bytes () существует в Python?
- что делает исключение python 3 обратным совместимым
- Совместимость между py2exe и GDAL для создания исполняемого файла
Используйте шесть ! Это модуль совместимости python, который убирает различия между python3 и python2. Доступная здесь документация поможет вам решить эту проблему, а также любые другие проблемы, которые возникают у вас.
В частности, для вашего дела вы можете просто
from six.moves import configparser import six if six.PY2: ConfigParser = configparser.SafeConfigParser else: ConfigParser = configparser.ConfigParser
и вам будет хорошо.
Этот шаблон довольно стандартный:
try: from configparser import ConfigParser except ImportError: from ConfigParser import SafeConfigParser as ConfigParser
Вы также можете сделать это:
import sys if sys.version[:1] == '2': from configparser import ConfigParser else: from ConfigParser import SafeConfigParser as ConfigParser
Подробнее здесь .
- В django существует ли способ напрямую аннотировать запрос связанным объектом в одном запросе?
- Распаковать список в индексы другого списка в python
- Имитация python ctypes byref аргумент 2 pre 2.6
- Могу ли я установить Python 3.x и 2.x на тот же компьютер?
- python 2 и 3 извлечь домен из url
- Перемещение кода из __init__.py, но сохранение обратной совместимости
- Почему невозможно смешивать Python2 с Python3?
- как запустить скрипт python с os.fork на окнах?
- Способ OOP для реализации класса для сравнения в Python
- webapp2 с python3
- Python предпочитает неназначенную локальную функцию по встроенной функции