Какво да направите, ако модулът, от който се нуждаете, поддържа само ръководство за Python 2
Ето малка инструкция как да решите доста често срещан проблем: докато работите по проект, се оказва, че един от модулите, от които се нуждаете, не поддържа Python 3. Например, клиентската библиотека за Qualys (инструмент за сигурност) е взета. Ето какво трябва да направите:
0. Уверете се, че проблемът все още е висящ
Преди да започнете, проверете дали някой друг е срещал същия проблем преди, като изследвате GitHub. Разгледайте - може би PyPi има подходящ пакет, който съдържа актуализации за Python 3.
1. Направете вилица
Ако търсенията все още не доведоха до нищо, продължете да променяте избрания модул. Струва си да се отбележи, че PyPi обикновено изброява поддържаните версии на Python. За модули, които работят само с Python 2, тази информация често се пропуска. В този пример тази част от описанието на модула изглежда така:
Така че отворете основния си проект на GitHub. Преди да правите някакви промени, не забравяйте да го разклоните, след това изтеглете или клонирайте хранилището и създайте нов клон. Говорещото име за него ще бъде например "python3".
2. Поправете отчетите за печат
Първото нещо, което трябва да разберете, преди да решите проблеми с импорта, са най-често срещаните изходни изрази. Старите отчети за отпечатване без скоби са едно от най-често срещаните препятствия, които може да срещнете в контекста на мигриране от Python 2 към Python 3. В третата стъпка ще използваме пакета Python-Modernize, за да улесним този преход, но няма засягат README, документацията и някои други файлове. За да намерите абсолютно всички стари отпечатъци в модул, използвайте рекурсивно търсене в поддиректории:
3. Провеждане на тестове
"Най-добрият" начин за тестване на съвместимостта на Python 2 и 3 е чрез пълно тестване и CI услуги като Circle, Snap или Travis. Но лош късмет - няма тестове за модула, който надграждате. И вие имате две възможности:
- пишете тестове сами;
- провеждане на статичен анализ на кода.
Ако се съмнявате, че втората опция може да ви помогне с нещо, прочетете статията ни за статичния анализатор.
Статичен анализ. Инсталирайте Python-Modernize:
Първо го стартирайте в информационен режим:
Това ще ви даде обща представа за това какви промени ще бъдат направени. Всичко ме устройва? След това стартирайте процеса на промяна със следната команда: