Мне нужно обновить версию приложения python с 2 до python 3 - PullRequest
0 голосов
/ 13 апреля 2020

Мне нужно обновить python версию моего приложения с 2 до python 3.

, как я могу проверить все python 2 библиотечные зависимости. Будет ли он нарушать какие-либо зависимости libs в python 3.

, мы будем благодарны за любые предложения по этому поводу.

В настоящее время выполняется проверка с -

Python2to3 - Исправление кода, используемое для исправления Синтаксис языка и аннотатор.

Проверка пипсов - собирает все библиотеки и их зависимости от версии. (Не работает для меня на сервере)

CanIuse python3 - Python module.

pipdeptree - Но как мне узнать, совместима ли версия пакета с python3 или нет.

Ответы [ 2 ]

0 голосов
/ 13 апреля 2020

Используемые модули

Скорее всего, автоматизированный инструмент не может предоставить вам полную информацию по нескольким причинам:

  • Некоторые модули изменили название или использование в диапазоне от Python 2 до Python3 совместимые версии.
  • Некоторые модули, возможно, не были обновлены для Python 3, но существуют альтернативы.

Поэтому я бы предложил следующее. Используя, например, egrep, извлеките все операторы import из кода приложения. Я хотел бы использовать что-то вроде этого (из каталога исходного кода):

egrep -Rh '^import .+|^from [^\.].+ import' . | sort | uniq

Если ваша операционная система не поддерживает эти инструменты, вы можете легко написать небольшой python скрипт для извлечения операторов импорта из всех ваши файлы кода.

Как только вы получите список всех импортируемых файлов, не обращайте внимания на модули, которые являются частью стандартной библиотеки или частью приложения.

Для остальных внешних модулей у вас будет для поиска в Интернете и проверки наличия Python 3-совместимой версии или альтернативы.

Преобразование кода

Как уже упоминалось, 2to3 может выполнять большинство изменений, которые можно автоматизировать для you.

В остальном я бы порекомендовал использовать хорошую проверку кода, например, pylama, и автоматический переформататор кода c, например, yapf.

.
0 голосов
/ 13 апреля 2020

Вы можете попробовать использовать эту библиотеку:

https://docs.python.org/2/library/2to3.html

Если она плохо справляется с работой, вы всегда можете попробовать ручную работу. Это поэтапный процесс, поэтому вам нужно будет что-то менять медленно.

...