Добрый день, сегодня мы с Вами научимся делать графический интерфейс приложениям в Python и компилировать их в .exe файл. Наверное, многих новичков уже достали консольные приложения, ведь их сложно показать другу и выглядеть будет не так эффектно. Сегодняшнюю статью я разбил на две части, а именно:
И так, без долгих предисловий приступим.
Глава 1. Графический интерфейс:
Для создания интерфейса мы будем использовать всеми нами любимый pyside и его QT designer. Для этого нам потребуется:
Если у Вас установлен Python выше 3.4 , то переустановите его , либо установите вместе с существующим.
И так, заходим в консоль и первым делом проверяем, что у нас установлена нужная версия Python. Далее нам необходимо установить библиотеку pyside. Делается это простой командой.
Далее переходим в директорию, где установлен сам Python, у меня это C:\Python34
Теперь нужно найти папку 'Lib'. Не перепутайте с папкой 'libs'.
Мы видим много файлов, но из них нам нужна папка 'site-packages'
Переходим в неё и открываем папку 'PySide'.
Так, вот мы и добрались до нашего любимого qt designer. Находим файл designer.exe. Что бы в дальнейшем легко открывать приложение, можем его 'отправить' на рабочий стол.
Далее мы запускаем его. Как только мы зашли, открывается форма, в которой мы можем выбрать тип будущего приложения, я выберу Main Window
После того, как мы выбрали тип, слева увидим таблицу с виджетами, а справа характеристики. Например, создам какую-нибудь форму. Справа в хар-ках, выбрав объект , мы можем увидеть колонку 'StyleSheets'. Открываем её, здесь с помощью CSS задаются стили объекта, например красный фон.
Допустим, вы набросали своё приложение, сохраняем его. Расширение обязательно должно быть .ui ! Ну вот, мы сделали это, а как добавить какие-то функции? Легко. Открываем консоль, с помощью команды
открываем директорию с файлом. Зачем? Если мы откроем этот файл, то увидим какую то разметку на xml, с ней ничего не сделать на python. Но мы этот файл переформатируем. Далее, вводим команду:
Нажимаем Enter и вуаля. Переходим в директорию и открываем файл, который был создан. Оттуда нам нужны только последние строки, копируем их.
У вас может быть немного по другому, если вы в начале выбрали не Main Window. Рядом с этим файлом создаём новый , в нём будет вся суть нашего приложения. Я его назову "script.py". Далее импортируем QtCore , QtGui из Pyside, класс ui из файла с интерфейсом из того, что мы скопировали , вырезаем строчку 'import sys' и вставляем её в начало. Выглядеть это должно так:
Строку ''if __name__ == "__main__":' мы удаляем, она нам больше не понадобится. Теперь, между последней и предпоследней строкой мы можем писать логику приложения.
Я немного подкорректировал и вот, что должно получиться.
Глава 2. Компиляция файла .py в .exe
Не волнуйтесь, эта глава будет намного проще .
Вы сделали программу с интерфейсом, но отправлять её другу, так он ещё и должен будет устанавливать все библиотеки? Нет, можно поступить намного проще! Сейчас я расскажу, как.
В папке я создал файл calc.py , в него разместил небольшой калькулятор и рядом разместил иконку калькулятора. Конечно можно и без иконки ( я покажу как ) , но это будет не так эффектно .
Для операция нам понадобится библиотека pyinstaller. Запускаем консоль и вводим команду:
Далее переходим в директорию с нашей программой, для этого используем всё ту же команду cd.
Далее в консоли вводим команду
Рядом с программой появилось несколько папок ( если файл .py полностью пустой, то ничего не будет ) . Из них нам нужна папка dist, там и находится наш .exe файл.
Теперь, даже если Вы в программе подключали какие-либо библиотеки, её можно запустить на любом компьютере, не устанавливая ничего. Но можно скомпилировать и без лишних файлов, это просто. В консоли вводим команду
Теперь всё скомпилируется в единый файл в папке dist. А как же задействовать иконку? Добавляем флаг -i. Тоесть вот так:
Так же снова можно добавить флак -F , что бы всё было приятно и красиво, в итоге команда получается такая:
Путь к иконке прописывать в " , а к файлу без " !!!
Если у Вас остались какие-то вопросы или появились ошибки, то прошу в комментарии. Спасибо за то, что дочитали до конца.
Всех благ
Код:
1. Создание графического интерфейса приложения.
2. Компиляция приложения на Python в .exe файл.
Глава 1. Графический интерфейс:
Для создания интерфейса мы будем использовать всеми нами любимый pyside и его QT designer. Для этого нам потребуется:
Код:
1. Python v3.4 и ниже.
2. Прямые руки ( желательно ).
И так, заходим в консоль и первым делом проверяем, что у нас установлена нужная версия Python. Далее нам необходимо установить библиотеку pyside. Делается это простой командой.
Код:
pip install pyside
Далее переходим в директорию, где установлен сам Python, у меня это C:\Python34
Теперь нужно найти папку 'Lib'. Не перепутайте с папкой 'libs'.
Мы видим много файлов, но из них нам нужна папка 'site-packages'
Переходим в неё и открываем папку 'PySide'.
Так, вот мы и добрались до нашего любимого qt designer. Находим файл designer.exe. Что бы в дальнейшем легко открывать приложение, можем его 'отправить' на рабочий стол.
Далее мы запускаем его. Как только мы зашли, открывается форма, в которой мы можем выбрать тип будущего приложения, я выберу Main Window
После того, как мы выбрали тип, слева увидим таблицу с виджетами, а справа характеристики. Например, создам какую-нибудь форму. Справа в хар-ках, выбрав объект , мы можем увидеть колонку 'StyleSheets'. Открываем её, здесь с помощью CSS задаются стили объекта, например красный фон.
Допустим, вы набросали своё приложение, сохраняем его. Расширение обязательно должно быть .ui ! Ну вот, мы сделали это, а как добавить какие-то функции? Легко. Открываем консоль, с помощью команды
Код:
cd путь к файлу
Код:
pyside uic "путь к файлу, включая его имя и расширение" -x -o "Путь к новому файлу, включая имя и расширение .py"
Нажимаем Enter и вуаля. Переходим в директорию и открываем файл, который был создан. Оттуда нам нужны только последние строки, копируем их.
У вас может быть немного по другому, если вы в начале выбрали не Main Window. Рядом с этим файлом создаём новый , в нём будет вся суть нашего приложения. Я его назову "script.py". Далее импортируем QtCore , QtGui из Pyside, класс ui из файла с интерфейсом из того, что мы скопировали , вырезаем строчку 'import sys' и вставляем её в начало. Выглядеть это должно так:
Код:
from PySide import QtCore, QtGui
from ui import Ui_Form
import sys
Я немного подкорректировал и вот, что должно получиться.
Код:
from PySide import QtCore, QtGui
from ui import Ui_Form
import sys
app = QtGui.QApplication(sys.argv)
MainWindow = QtGui.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
# your code
sys.exit(app.exec_())
Глава 2. Компиляция файла .py в .exe
Не волнуйтесь, эта глава будет намного проще .
Вы сделали программу с интерфейсом, но отправлять её другу, так он ещё и должен будет устанавливать все библиотеки? Нет, можно поступить намного проще! Сейчас я расскажу, как.
В папке я создал файл calc.py , в него разместил небольшой калькулятор и рядом разместил иконку калькулятора. Конечно можно и без иконки ( я покажу как ) , но это будет не так эффектно .
Для операция нам понадобится библиотека pyinstaller. Запускаем консоль и вводим команду:
Код:
pip install pyinstaller
Код:
cd 'путь к директории файла'
Код:
pyinstaller 'имя вашего файла'
Теперь, даже если Вы в программе подключали какие-либо библиотеки, её можно запустить на любом компьютере, не устанавливая ничего. Но можно скомпилировать и без лишних файлов, это просто. В консоли вводим команду
Код:
pyinstaller -F 'имя вашего файла'
Код:
pyinstaller -i 'путь к иконке' 'имя вашего файла'
Код:
pyinstaller -F -i 'путь к иконке' 'имя вашего файла'
Если у Вас остались какие-то вопросы или появились ошибки, то прошу в комментарии. Спасибо за то, что дочитали до конца.
Всех благ