Используемые модули
Скорее всего, автоматизированный инструмент не может предоставить вам полную информацию по нескольким причинам:
- Некоторые модули изменили название или использование в диапазоне от Python 2 до Python3 совместимые версии.
- Некоторые модули, возможно, не были обновлены для Python 3, но существуют альтернативы.
Поэтому я бы предложил следующее. Используя, например, egrep
, извлеките все операторы import
из кода приложения. Я хотел бы использовать что-то вроде этого (из каталога исходного кода):
egrep -Rh '^import .+|^from [^\.].+ import' . | sort | uniq
Если ваша операционная система не поддерживает эти инструменты, вы можете легко написать небольшой python скрипт для извлечения операторов импорта из всех ваши файлы кода.
Как только вы получите список всех импортируемых файлов, не обращайте внимания на модули, которые являются частью стандартной библиотеки или частью приложения.
Для остальных внешних модулей у вас будет для поиска в Интернете и проверки наличия Python 3-совместимой версии или альтернативы.
Преобразование кода
Как уже упоминалось, 2to3
может выполнять большинство изменений, которые можно автоматизировать для you.
В остальном я бы порекомендовал использовать хорошую проверку кода, например, pylama
, и автоматический переформататор кода c, например, yapf
.
.