Как сделать красивое оформление exe python
Перейти к содержимому

Как сделать красивое оформление exe python

  • автор:

Статья Как создать графический интерфейс приложению + как скомпилировать его в .exe

Добрый день, сегодня мы с Вами научимся делать графический интерфейс приложениям в Python и компилировать их в .exe файл. Наверное, многих новичков уже достали консольные приложения, ведь их сложно показать другу и выглядеть будет не так эффектно. Сегодняшнюю статью я разбил на две части, а именно:

1. Создание графического интерфейса приложения. 2. Компиляция приложения на Python в .exe файл.

И так, без долгих предисловий приступим.

Глава 1. Графический интерфейс:

Для создания интерфейса мы будем использовать всеми нами любимый pyside и его QT designer. Для этого нам потребуется:

1. Python v3.4 и ниже. 2. Прямые руки ( желательно ).

Если у Вас установлен Python выше 3.4 , то переустановите его , либо установите вместе с существующим.
И так, заходим в консоль и первым делом проверяем, что у нас установлена нужная версия Python. Далее нам необходимо установить библиотеку pyside. Делается это простой командой.

pip install pyside

30522

Далее переходим в директорию, где установлен сам Python, у меня это C:\Python34
Теперь нужно найти папку ‘Lib’. Не перепутайте с папкой ‘libs’.

30523

Мы видим много файлов, но из них нам нужна папка ‘site-packages’

30524

Переходим в неё и открываем папку ‘PySide’.

30525

Так, вот мы и добрались до нашего любимого qt designer. Находим файл designer.exe. Что бы в дальнейшем легко открывать приложение, можем его ‘отправить’ на рабочий стол.

30526

Далее мы запускаем его. Как только мы зашли, открывается форма, в которой мы можем выбрать тип будущего приложения, я выберу Main Window

30555

После того, как мы выбрали тип, слева увидим таблицу с виджетами, а справа характеристики. Например, создам какую-нибудь форму. Справа в хар-ках, выбрав объект , мы можем увидеть колонку ‘StyleSheets’. Открываем её, здесь с помощью CSS задаются стили объекта, например красный фон.

30556

Допустим, вы набросали своё приложение, сохраняем его. Расширение обязательно должно быть .ui ! Ну вот, мы сделали это, а как добавить какие-то функции? Легко. Открываем консоль, с помощью команды

cd путь к файлу

открываем директорию с файлом. Зачем? Если мы откроем этот файл, то увидим какую то разметку на xml, с ней ничего не сделать на python. Но мы этот файл переформатируем. Далее, вводим команду:

pyside uic "путь к файлу, включая его имя и расширение" -x -o "Путь к новому файлу, включая имя и расширение .py"

30558

Нажимаем Enter и вуаля. Переходим в директорию и открываем файл, который был создан. Оттуда нам нужны только последние строки, копируем их.

30559

У вас может быть немного по другому, если вы в начале выбрали не Main Window. Рядом с этим файлом создаём новый , в нём будет вся суть нашего приложения. Я его назову «script.py». Далее импортируем QtCore , QtGui из Pyside, класс ui из файла с интерфейсом из того, что мы скопировали , вырезаем строчку ‘import sys’ и вставляем её в начало. Выглядеть это должно так:

from PySide import QtCore, QtGui from ui import Ui_Form import sys

Строку »if __name__ == «__main__»:’ мы удаляем, она нам больше не понадобится. Теперь, между последней и предпоследней строкой мы можем писать логику приложения.

30560

Я немного подкорректировал и вот, что должно получиться.

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 , в него разместил небольшой калькулятор и рядом разместил иконку калькулятора. Конечно можно и без иконки ( я покажу как ) , но это будет не так эффектно .

30561

Для операция нам понадобится библиотека pyinstaller. Запускаем консоль и вводим команду:

pip install pyinstaller

Далее переходим в директорию с нашей программой, для этого используем всё ту же команду cd.

cd 'путь к директории файла'

Далее в консоли вводим команду

pyinstaller 'имя вашего файла'

Рядом с программой появилось несколько папок ( если файл .py полностью пустой, то ничего не будет ) . Из них нам нужна папка dist, там и находится наш .exe файл.

30562

Теперь, даже если Вы в программе подключали какие-либо библиотеки, её можно запустить на любом компьютере, не устанавливая ничего. Но можно скомпилировать и без лишних файлов, это просто. В консоли вводим команду

pyinstaller -F 'имя вашего файла'

Теперь всё скомпилируется в единый файл в папке dist. А как же задействовать иконку? Добавляем флаг -i. Тоесть вот так:

pyinstaller -i 'путь к иконке' 'имя вашего файла'

Так же снова можно добавить флак -F , что бы всё было приятно и красиво, в итоге команда получается такая:

pyinstaller -F -i 'путь к иконке' 'имя вашего файла'

Путь к иконке прописывать в » , а к файлу без » .
Если у Вас остались какие-то вопросы или появились ошибки, то прошу в комментарии. Спасибо за то, что дочитали до конца.
Всех благ

Как сделать из Python-скрипта исполняемый файл

Вы изучаете данные и хотите поделиться своим кодом Python с другими, не раскрывая исходный код и не требуя от них установки Python и других компонентов? Если да, то вам может быть интересна конвертация вашего скрипта Python в исполняемый файл.

Исполняемый файл — это файл, который может быть установлен или запущен на компьютере без использования дополнительного программного обеспечения или библиотек. Он имеет расширение .exe и обычно используется для программных приложений в Windows. Конвертируя свой сценарий Python в исполняемый файл, вы можете защитить свой код от изменения или кражи, облегчить другим людям использование вашей программы и сделать автоматическим выполнение задач.

В этой статье я покажу вам два простых метода конвертации файла Python в исполняемый файл с помощью PyInstaller и auto-py-to-exe. Это две популярные библиотеки Python, которые позволяют создавать автономные исполняемые файлы из скриптов Python. Для работы вам понадобится Python 3.6 или выше.

Способ 1: С помощью библиотеки PyInstaller:

PyInstaller — это библиотека Python, которая может анализировать ваш код и компоновать его с необходимыми модулями и библиотеками в один исполняемый файл. Она поддерживает множество платформ, включая Windows, Linux и Mac OS X. PyInstaller также может обрабатывать сложные случаи, такие как импорт файлов данных, скрытый импорт, приложения с графическим интерфейсом и т.д.

Чтобы использовать PyInstaller, вам нужно сначала установить его с помощью pip:

pip install pyinstaller

Затем вам нужно написать свой скрипт Python и сохранить его с расширением .py. В этом примере я буду использовать простой сценарий, который печатает «Hello World» и сохраняет его под именем hello.py:

print("Hello World")

Далее необходимо открыть командную строку и перейти в каталог, где находится ваш скрипт. Затем необходимо выполнить следующую команду:

pyinstaller hello.py

В результате вы создадите папку dist, содержащая исполняемый файл hello.exe. Вы можете дважды щелкнуть на этом файле, чтобы запустить его или поделиться им с другими.

Если вы хотите создать однофайловый исполняемый файл, не требующий дополнительных файлов или папок, вы можете использовать ключ —onefile:

pyinstaller --onefile hello.py

В папке dist будет создан один файл hello.exe, содержащий все необходимые коды и ресурсы.

Если вы хотите скрыть окно консоли при запуске исполняемого файла, вы можете использовать опцию —noconsole:

pyinstaller --noconsole --onefile hello.py

Будет создан исполняемый файл, работающий в фоновом режиме.

Вы также можете настроить другие аспекты исполняемого файла, такие как иконка, имя, версия и т.д., используя различные опции или создав файл спецификации. За более подробной информацией вы можете обратиться к документации PyInstaller.

Способ 2: С помощью auto-py-to-exe:

auto-py-to-exe — это еще одна библиотека Python, которая может конвертировать скрипты Python в исполняемые файлы. Она основана на PyInstaller, но имеет графический интерфейс для пользователя (GUI), что делает ее более простой в работе. Вы можете просто выбрать свой скрипт, подобрать параметры и нажать кнопку, чтобы сгенерировать исполняемый файл.

Чтобы использовать auto-py-to-exe, вам нужно сначала установить его с помощью pip:

pip install auto-py-to-exe

Затем необходимо выполнить следующую команду для запуска графического интерфейса пользователя:

auto-py-to-exe

Откроется окно, которое выглядит следующим образом:

Здесь вы можете выбрать свой скрипт, нажав на кнопку Browse рядом с Script Location. Вы также можете выбрать, хотите ли вы получить исполняемый файл в одном файле или в одной папке, выбрав One File или One Directory в разделе Output Options.

Вы также можете изменить другие настройки, такие как иконка, имя, окно консоли и т.д., перейдя на вкладку Advanced и изменив поля Additional Files или Window Based Options.

После того как вы закончите с настройками, нажмите на кнопку Convert .py to .exe в нижней части окна. Это запустит процесс преобразования и покажет результат на вкладке Консоль.

После завершения преобразования вы сможете найти исполняемый файл в папке вывода, указанной в разделе Output Options. Вы можете запустить его или поделиться им с другими пользователями.

28 августа начнется новый поток по языку программирования Python. На нем мы разберем: Библиотеки Python и решение конкретных задач DevOps; Правила эффективного и поддерживаемого кода; Принципы автоматизации: Docker, Gitlab, Prometheus, K8S и многое другое.

Запаковка файла питон в исполняемый файл exe

форумчане! Кто знает как скомпилировать питоновский файл? Просто я пытаюсь это сделать с помощью pyinstaller, но у меня не получается Експерементировал: убирал разные библиотеки из кода, не компилирует только при библиоетеке PIL

from PIL import Image, ImageTk 

а так всё компилирует кто знает ещё способы откомпилировать файл питона, либо исправить ошибку ошибка

L:\Програмирование\Python\Coder>pyinstaller main.py 99 INFO: PyInstaller: 3.5 99 INFO: Python: 3.7.4 100 INFO: Platform: Windows-10-10.0.18362-SP0 107 INFO: wrote L:\Програмирование\Python\Coder\main.spec 110 INFO: UPX is not available. 111 INFO: Extending PYTHONPATH with paths ['L:\\Програмирование\\Python\\Coder', 'L:\\Програмирование\\Python\\Coder'] 111 INFO: checking Analysis 124 INFO: Building because L:\Програмирование\Python\Coder\main.py changed 125 INFO: Initializing module dependency graph. 130 INFO: Initializing module graph hooks. 132 INFO: Analyzing base_library.zip . 3775 INFO: running Analysis Analysis-00.toc 3779 INFO: Adding Microsoft.Windows.Common-Controls to dependent assemblies of final executable required by d:\python\python3.exe 4134 INFO: Caching module hooks. 4141 INFO: Analyzing L:\Програмирование\Python\Coder\main.py 4649 INFO: Processing pre-find module path hook distutils 6680 INFO: Processing pre-find module path hook site 6681 INFO: site: retargeting to fake-dir 'd:\\python\\lib\\site-packages\\PyInstaller\\fake-modules' 8516 INFO: Processing pre-safe import module hook setuptools.extern.six.moves 12119 INFO: Loading module hooks. 12120 INFO: Loading module hook "hook-distutils.py". 12122 INFO: Loading module hook "hook-encodings.py". 12246 INFO: Loading module hook "hook-lib2to3.py". 12256 INFO: Loading module hook "hook-numpy.core.py". Traceback (most recent call last): File "d:\python\lib\runpy.py", line 193, in _run_module_as_main "__main__", mod_spec) File "d:\python\lib\runpy.py", line 85, in _run_code exec(code, run_globals) File "D:\Python\Scripts\pyinstaller.exe\__main__.py", line 7, in File "d:\python\lib\site-packages\PyInstaller\__main__.py", line 111, in run run_build(pyi_config, spec_file, **vars(args)) File "d:\python\lib\site-packages\PyInstaller\__main__.py", line 63, in run_build PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs) File "d:\python\lib\site-packages\PyInstaller\building\build_main.py", line 844, in main build(specfile, kw.get('distpath'), kw.get('workpath'), kw.get('clean_build')) File "d:\python\lib\site-packages\PyInstaller\building\build_main.py", line 791, in build exec(code, spec_namespace) File "L:\Програмирование\Python\Coder\main.spec", line 17, in noarchive=False) File "d:\python\lib\site-packages\PyInstaller\building\build_main.py", line 243, in __init__ self.__postinit__() File "d:\python\lib\site-packages\PyInstaller\building\datastruct.py", line 158, in __postinit__ self.assemble() File "d:\python\lib\site-packages\PyInstaller\building\build_main.py", line 502, in assemble module_hook.post_graph() File "d:\python\lib\site-packages\PyInstaller\building\imphook.py", line 410, in post_graph self._load_hook_module() File "d:\python\lib\site-packages\PyInstaller\building\imphook.py", line 377, in _load_hook_module self.hook_module_name, self.hook_filename) File "d:\python\lib\site-packages\PyInstaller\compat.py", line 793, in importlib_load_source return mod_loader.load_module() File "", line 407, in _check_name_wrapper File "", line 907, in load_module File "", line 732, in load_module File "", line 265, in _load_module_shim File "", line 696, in _load File "", line 677, in _load_unlocked File "", line 728, in exec_module File "", line 219, in _call_with_frames_removed File "d:\python\lib\site-packages\PyInstaller\hooks\hook-numpy.core.py", line 27, in pkg_base, pkg_dir = get_package_paths('numpy.core') File "d:\python\lib\site-packages\PyInstaller\utils\hooks\__init__.py", line 535, in get_package_paths file_attr = get_module_file_attribute(package) File "d:\python\lib\site-packages\PyInstaller\utils\hooks\__init__.py", line 318, in get_module_file_attribute loader = pkgutil.find_loader(package) File "d:\python\lib\pkgutil.py", line 493, in find_loader spec = importlib.util.find_spec(fullname) File "d:\python\lib\importlib\util.py", line 94, in find_spec parent = __import__(parent_name, fromlist=['__path__']) File "d:\python\lib\site-packages\numpy\__init__.py", line 142, in from . import core File "d:\python\lib\site-packages\numpy\core\__init__.py", line 23, in WinDLL(os.path.abspath(filename)) File "d:\python\lib\ctypes\__init__.py", line 364, in __init__ self._handle = _dlopen(self._name, mode) OSError: [WinError 193] %1 не является приложением Win32 

Превращаем код на Python в исполняемый EXE-файл

Аватарка пользователя Рафаил Агазода

Как скомпилировать Python-код в файл EXE, чтобы защитить свой код или наглядно показать работу вашей программы.

Обычно код на Питон запускают двумя способами: через терминал или через текстовый редактор / IDE.

При этом стоит отметить, что файлик Python — это всего лишь скрипт, который сохранён в расширении .py. Да, это очевидно, но в этом и кроется проблема: иногда нужно скрыть исходный код, а поделиться программкой (в виде альфа-версии, например) очень хочется.

Одно из решений, которое закрывают боль с исходным кодом — это конвертация файла Python в исполняемый exe-файлик.

В этой статье мы научимся создавать «экзешники» при помощи двух библиотек: Pyinstaller and auto-py-to-exe.

Перед тем, как продолжить чтение статьи, скачайте этот репозиторий. Он здорово поможет вам понять процесс, если вы будете повторять все шаги вместе с нами.

Почему возникает потребность конвертировать Python-код в EXE

  1. Код могут украсть. Об этом мы уже говорили выше. Куда проще достать исходный код непосредственно из py-файла, чем из скомпилированного приложение. Py-файл достаточно просто открыть!
  2. Хочется поделиться кодом с другими юзерами. Дело не только в том, что ваш код могут украсть. Зачастую код содержит зависимости, которыми должен владеть другой юзер перед запуском вашего Python-кода. Но что, если он вообще ничего не смыслит в программировании? Не заставишь ведь его сперва выучить программирование, чтобы оценить ваше новое суперприложение. Проще создать исполняемый файл.
  3. Исполняемый файл можно запускать автоматически, по расписанию. Этот пункт актуален, если вы решили написать утилиту для вашего ПК, и эта утилита должна запускаться либо в определенное время, либо вместе с запуском ОС.

Конвертация кода Python в файл .exe

Для начала создадим скрипт на Python. В качестве примера мы используем открытый код бронирования жилья AitBnb в Нью-Йорке. Если у вас уже есть готовый код, можете сразу использовать его.

import pandas as pd from pandas.api.types import CategoricalDtype def perform_validation(filename:str): """ A function to validate inputs for NYC Airbnb Open data. """ path_to_data = "../.." data = pd.read_csv(f"") # Convert neighbourhood_group to type category neighbourhood_group_to_cat = CategoricalDtype( categories=["Manhattan", "Brooklyn", "Queens", "Bronx", "Staten Island"], ordered=False ) data["neighbourhood_group"] = data["neighbourhood_group"].astype(neighbourhood_group_to_cat) # Convert room_type to type category room_type_to_cat = CategoricalDtype( categories=["Entire home/apt", "Private room", "Shared room"], ordered=False ) data["room_type"] = data["room_type"].astype(room_type_to_cat) # Convert last_review to datetime data["last_review"] = pd.to_datetime(data["last_review"]) # Minimum nights a person can stay is one night assert data["minimum_nights"].min() >= 1 # Minimum number of reviews is 0 assert data["number_of_reviews"].min() >= 0 # Minimum number of reviews per month assert data["reviews_per_month"].min() >= 0.00 # Minimum amount of listings per host assert data["calculated_host_listings_count"].min() >= 1 # Number of days when listing is available for books # Could be 0 if tennant has long term booking assert data["availability_365"].min() >= 0 # Save validated data data.to_csv("validated_ab_nyc_2019.csv", index=False) if __name__ == "__main__": # User inputs filename filename = input("Enter filename: ") # Ensure it's a string if not filename.isalpha(): filename = str(filename) # Automated validation perform_validation(filename) 

Вы не забыли скачать библиотеки по ссылке по введении? Сделайте это сейчас.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *