#python #migration
Вопрос:
Я выполняю миграцию кода с python 2 на python 3. есть некоторый код, который я не переношу и который необходим для кода, который я переношу, поэтому мне нужно, чтобы некоторые операторы импорта работали в обеих версиях, но, например, имя пакета было изменено:
import urlparse # Python2
import urllib.parse as urlparse # Python 3
как я могу написать код для оператора, который будет работать в обеих версиях.
имейте в виду, что этот вопрос относится к общему случаю (приведенный выше пример является лишь одной из проблем, вызванных следующей миграцией).
Комментарии:
1. Если вы пытаетесь написать код полиглота
six
(2×3), может помочь: six.readthedocs.io/#module-six.moves . Или просто используйте «попробуй и поймай».2. Нет необходимости заниматься миграцией самостоятельно. Взгляните на python3porting.com который предлагает более позднюю версию книги, которую я нашел очень полезной в большой миграции.
Ответ №1:
Для импорта вы можете выполнить следующие действия:
import sys
if sys.version_info[0] < 3:
#import your py2 packages
else:
#import your py3 packages