Недавно мне нужно было сделать небольшую программу для Windows. Я никогда раньше не разрабатывал для этого.
Сама программа не сложная и написана относительно быстро.
Сборка его для Windows заняла гораздо больше времени.
Понятно, что выбранные инструменты (Python3+Qt5) не нативные, а универсальные, но я не ожидал, что на сборку уйдет столько времени.
Соответственно, хотелось бы поделиться своей практикой, возможно, кому-то еще придется стукнуться лбом об эту стену.
Ниже приведены с трудом добытые инструкции о том, как легко собрать приложения PyQt5 в один файл.
exe, не требующий установщика.
Наиболее известные решения для моей задачи — создания приложений Python в формате .
exe — это: py2exe, cx_freeze и pyinstaller. О каждом написано немало.
Но очень часто авторы грешат халтурой - программа легко и быстро собирается и запускается.
на одном и том же компьютере.
Нужно ли говорить, что это две большие разницы — запуск в среде разработки и запуск у пользователя? У меня будет работать без всяких сборок и танцев с бубном.
Кроме того, какой пользователь будет устанавливать Qt? Для каждого инструмента есть инструкция.
Но у каждого были свои проблемы: один не запускался (pyinstaller до сих пор поддерживает Python 3 в экспериментальном режиме), другой собирал то, что не мог запустить, третий вообще долго ничего не собирал, проклиная все вокруг.
После долгой борьбы был выбран py2exe. Секрет успеха — правильная установка компонентов из правильных источников (прямых ссылок не даю, т. к.
они все равно будут устаревшими, пишу где искать):
- Win XP 32-битная (или другая, которую вы используете за основу — я специально взял самую старую систему)
- Python 3.4 – установить с помощью www.python.ord/download MSI-установщик Windows x86. Вы можете сразу добавить C:\Python34\ в %PATH%.
- PyWin32 — установите файл pywin32-219.win32.py3.4.exe с sf.net.
- Qt5.5 — установка с официального сайта qt.io. Одновременно с ним устанавливается компилятор mingw4.9.2.
- После установки добавьте C:\Qt\Tools\mingw492_32\bin в %PATH%.
- Git для Windows — он нам в любом случае понадобится, установите с git-scm.com
- PyQt5 — загрузите и установите установщик win32 x86 Riverbankcomputing.co.uk
- SIP — до сих пор не понимаю почему, но тот же Riverbankcomputing.co.uk не удосужился собрать сервисный модуль, поэтому скачиваем исходники win, распаковываем, далее удобно продолжать работу в консоли Git Bash:
- python configure.py -p win32-g++
- mingw32-make.exe
- Установка mingw32-make.exe.
- Разумеется, установка не пройдет (.
К счастью, нам нужно установить всего 3 файла.
Заходим вручную в папку sipgen/ и копируем sip.exe в C:\Python34.
- Затем перейдите в .
/siplib и
- скопируйте sip.pyd c:\python34\Lib\site-packages
- зачистите /c/Python34/Lib/site-packages/sip.pyd
- Наконец, скопируйте файл .
h:
- cp sip.h /c/Python34/include/
- py2exe — установить родным способом: python -m pip install py2exe
- pyreadline — также: python -m pip install pyinstaller
- 7-Zip - скачать x86 exe с сайта 7-zip.org
- 7-zip extra - скачайте оттуда полезные дополнения, распакуйте их в папку с установленной папкой 7-zip. Вы можете забыть о конфликтах текстовых файлов.
- Ресурс Хакер — скачайте angusj.com — однако, если вы не собираетесь заменять дефолтный значок программы на свой, то он вам не понадобится.
Либо его можно заменить на виндрес, который идет в комплекте с mingw - но я это уже сделал с RH.
Теги: #python #python3 #qt5 #PyQt5 #exe #Windows #python #Qt #разработка для Windowsfrom distutils.core import setup import os, sys import py2exe from glob import glob import PyQt5 NAME="Proga" qt_platform_plugins = [("platforms", glob(PyQt5.__path__[0] + r'\plugins\platforms\*.
*'))] data_files.extend(qt_platform_plugins) msvc_dlls = [('.
', glob(r'C:\Windows\System32\msvc?100.dll'))] data_files.extend(msvc_dlls) # print(data_files) sys.argv.append('py2exe') setup(
-
Почему Журнал Тинькофф Выбирает Django
19 Oct, 24 -
Мемкэш Для Ios
19 Oct, 24 -
Проверка
19 Oct, 24