Чек-лист для запуска проекта на PySide6 под Windows 7

Рассматриваем возможность запуска проекта на PySide6 под Windows 7 путем перехода на PySide2

1 мин на чтение

Контекст

На проекте YouTubeAnalyzer используется свежий PySide6 и Python 3.11+. В связи с этим запуск программы возможен только на Windows 10 и выше (уже привычное требование в современных продуктах).

Но реальность как обычно другая. Есть пользователи, которые по разным причинам могут работать только с Windows 7(8). С одной стороны, можно их проигнорировать и просто развести руками, но с другой - помочь и попробовать перевести проект на технологии, совместимые с Windows 7. И в истории с Python/PySide это выполнимо.

Ниже привожу чек-лист портирования проекта на PySide6 под Windows 7 на примере YouTubeAnalyzer. Этот проект небольшой, поэтому вся работа заняла один вечер. На проектах большего размера целесообразность таких действий надо ставить под вопрос. Чек-лист как раз поможет сообразить, стоит ли игра свеч.

Чек-лист

  1. Перейти на Python 3.8. Это последняя версия Python, поддерживающая Windows 7. Если в проекте не используются фишки от Python 3.9+, то исправлений может вообще не быть. Иначе же что-то придется переписать. Например, отказаться от switch.

  2. Перейти на PySide2. По большей части API PySide6 и PySide2 не отличаются. Всё здесь даже немного проще, чем с Python 3.8. Если не используются специфические фишки PySide6, то вся работа сведется к элементарной замене import-ов.

    1. Проконтролировать версию OpenSSL. Последняя версия PySide2 (Qt 5.15.2.1) использует OpenSSL 1.1.1. Необходимо убедиться, что в системе есть ее библиотеки. Иначе модуль PySide2.QtNetwork не сможет работать с SSL.

    2. Заменить функцию QApplication.exec() на QApplication._exec(). Запуск главного обработчика событий в PySide2 выполнялся по-другому.

    3. Заменить функцию QLibraryInfo.path() на QLibraryInfo.location(). Это относится к получению стандартных путей PySide.

Обновления

В репозитории YouTubeAnalyzer порт на Windows 7 всегда находится на отдельной ветке port_win7. Будущие версии планирую портировать здесь же, пока не отпадет необходимость либо не появится непортируемая функциональность. Чек-лист тоже будет обновляться.


Обсудить в Телеграм


Свежие записи

Как разбить проект CMake на подпроекты

Как разбить проект CMake на подпроекты

Разделяем на подпроекты существующий проект C++ на CMake

1 мин на чтение

Как создать оконное приложение на Qt в среде QtCreator

Как создать оконное приложение на Qt в среде QtCreator

Учимся создавать свое первое оконное приложение на Qt с использованием QMainWindow в среде QtCreator

6 мин на чтение

Как создать 3D модель с помощью OpenCASCADE на C++ в среде QtCreator

Как создать 3D модель с помощью OpenCASCADE на C++ в среде QtCreator

Учимся создавать свою первую 3D модель тора в OpenCASCADE

3 мин на чтение

Как работать с пул-реквестами в личном репозитории GitHub

Как работать с пул-реквестами в личном репозитории GitHub

Учимся работать с пул-реквестами на GitHub в личных репозиториях

3 мин на чтение

Как исследовать exe-файлы с Cutter. Практика обратной разработки

Как исследовать exe-файлы с Cutter. Практика обратной разработки

Простейший пример исследования и патчинга исполняемого файла с помощью Cutter

2 мин на чтение