Pyinstaller как использовать linux

Обновлено: 05.07.2024

Образ Docker для Manylinux/Windows Pyinstaller

Этот контейнер основан на официальном образе докера Python Manylinux manylinux2014, который устанавливает всю среду сборки на основе очень старой версии Linux таким образом, что когда вы создаете на нем двоичный модуль Python, он гарантированно работает на любой современный (на основе glibc) Linux, а также Alpine (на основе musl libc) Linux.

Нам пришлось пересобрать Python внутри этого контейнера с использованием общих библиотек (поддерживается только последний Python 3, в котором работает PyInstaller), чтобы иметь возможность использовать его с проектом Pyinstaller, и, кроме того, в образ также была установлена ​​работающая версия Wine 5. (Wine — это эмулятор Microsoft Windows) с Python для Windows, pip и т. д., добавленным для возможности создания исполняемых файлов Pyinstaller для Windows. Идея сборки бинарников Windows с помощью Wine была взята отсюда, но улучшена, на основе manylinux и сделана полиглотом, т.е. один и тот же контейнер подходит как для Linux, так и для Windows.

Чтобы собрать двоичный файл, вам нужно смонтировать папку с исходным кодом в контейнер в папке /src, и любой дополнительный аргумент командной строки будет отправлен в Pyinstaller.

Полученные двоичные файлы будут расположены в dist/linux , dist/alpine и dist/windows соответственно, и будет создан файл .spec, используемый Pyinstaller. Кроме того, вы можете предоставить Pyinstaller такой файл .spec вместо модуля python, и он будет следовать его инструкциям. Дополнительную информацию см. в документации Pyinstaller.

Если в корне папки с исходным кодом есть файл requirements.txt, он будет установлен с помощью pip install перед запуском Pyinstaller.

helloworld.py $ docker run \ -v "$(pwd):/src" \ fydeinc/pyinstaller \ helloworld.py $ docker run -it -v "$(pwd):/mnt" centos /mnt/dist /linux/helloworld Привет, мир">

Немного сложнее

Некоторое поведение можно изменить, изменив среду контейнера.

О нас

Это полиглот pyinstaller, основанный на Python Manylinux и Wine, который собирается для Linux и Windows

PyInstaller поддерживает создание исполняемых файлов для Windows, Linux и macOS, но не поддерживает кросс-компиляцию. … Итак, чтобы распространять исполняемые файлы для нескольких типов ОС, вам понадобится машина сборки для каждой поддерживаемой ОС.

Как запустить PyInstaller в Linux?

«Как запустить pyinstaller в Linux» Code Answers

  1. pip install pyinstaller.
  2. перейдите в каталог с файлами в командной строке.
  3. pyinstaller ваша программа. ру.

Работает ли PyInstaller в Ubuntu?

Другими словами, PyInstaller работает на разных платформах, и вы можете запускать его в Linux, Windows, macOS и других системах, но полученный пакет предназначен только для одной архитектуры. Это также означает, что вам нужно быть немного осторожным при использовании PyInstaller на компьютере, на котором установлено несколько версий Python.

Требуется ли для PyInstaller EXE Python?

Для ваших пользователей приложение является автономным. Им не нужно устанавливать какую-либо конкретную версию Python или какие-либо модули. Им вообще не нужно устанавливать Python. Вывод PyInstaller зависит от активной операционной системы и активной версии Python.

Что лучше PyInstaller или py2exe?

В PyInstaller легко создать один исполняемый файл. По умолчанию оба создают кучу исполняемых файлов и dll. В py2exe проще встроить файл манифеста в exe, что полезно для запуска в режиме администратора в Windows Vista и выше. Pyinstaller является модульным и имеет функцию перехватчиков для включения файлов в понравившуюся вам сборку.

Почему PyInstaller не работает?

Самая распространенная причина сбоя пакета PyInstaller заключается в том, что PyInstaller не удалось собрать требуемый файл. Такие отсутствующие файлы делятся на несколько категорий: Скрытый или отсутствующий импорт: иногда PyInstaller не может обнаружить импорт пакета или библиотеки, как правило, из-за того, что они импортируются динамически.

Что такое исполняемые файлы Linux?

Исполняемый файл, также называемый исполняемым или двоичным файлом, представляет собой готовую к запуску (т. е. исполняемую) форму программы. … Исполняемые файлы обычно хранятся в одном из нескольких стандартных каталогов на жестком диске (HDD) в Unix-подобных операционных системах, включая /bin, /sbin, /usr/bin, /usr/sbin и /usr/local/bin .

Как установить определенную версию PyInstaller?

С помощью pip-Win особенно легко установить PyInstaller вместе с правильной версией PyWin32.

После установки использовать PyInstaller

  1. Запустить pip-Win.
  2. В поле "Команда" введите venv pyi-env-name.
  3. Нажмите "Выполнить".

Компилируется ли Python в exe?

Да, скрипты Python можно скомпилировать в автономные исполняемые файлы. PyInstaller можно использовать для преобразования программ Python в автономные исполняемые файлы в Windows, Linux, Mac OS X, FreeBSD, Solaris и AIX.

Является ли PyInstaller вредоносным ПО?

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

Как запустить Python PyInstaller?

Шаги по созданию исполняемого файла из скрипта Python с помощью Pyinstaller

  1. Шаг 1. Добавьте Python в путь Windows. …
  2. Шаг 2. Откройте командную строку Windows. …
  3. Шаг 3. Установите пакет Pyinstaller. …
  4. Шаг 4. Сохраните сценарий Python. …
  5. Шаг 5. Создайте исполняемый файл с помощью Pyinstaller. …
  6. Шаг 6. Запустите исполняемый файл.

Как защитить код Python?

Лучшее решение этой уязвимости — зашифровать исходный код Python. Шифрование исходного кода Python — это метод «обфускации Python», целью которого является сохранение исходного кода в форме, нечитаемой для человека.

обзор программирования

Благодаря PyInstaller теперь легко создать установку для проекта на основе Python, который вы распространяете: Linux, Windows или MacOS. Здесь я рассмотрю PyInstaller в Linux.

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

Вот почему для каждой ОС (операционной системы) необходимо создать отдельный распространяемый исполняемый файл.

Установите PyInstaller

Первым шагом будет загрузка PyInstaller из PyPi, но еще проще установить его с помощью pip:

Если вы не уверены, что у вас уже установлена ​​последняя версия PyInstaller, попробуйте установить и обновить ее:

С этого момента вы можете вызывать pyinstaller из командной строки.

Эксперимент: создание установки

Давайте испачкаем пальцы кодом. Давайте создадим программу, которую вы сможете распространять на любую платформу Linux, даже если Python не установлен. Другими словами, в результате этого эксперимента мы создадим автономный исполняемый файл Linux.

Сначала мы создаем папку с именем /content для проведения нашего эксперимента. Там мы создаем файл с именем getdatetime.py:

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

Если мы перечислим папку /content, мы получим следующий вывод. Вау!

список файлов

Если теперь мы выполним команду файла, чтобы проверить тип файла для getdatetime:

Мы получаем вывод, что это исполняемый файл ELF Linux:

Чтобы запустить исполняемый файл, мы просто набираем в командной строке:

Вот как это просто; для создания независимого исполняемого файла, который вы можете запускать на любом Linux, с установленным Python или без него.

Что будет делать PyInstaller?

build/folder — это место, где PyInstaller подготавливает исполняемый файл дистрибутива и сохраняет его в dist/folder. getdatetime.spec — это файл спецификации, который PyInstaller создает при первом запуске.

Вы можете отредактировать файл getdatetime.spec и присвоить выходному исполняемому файлу другое имя.

Когда вывод PyInstaller не является одним файлом

Есть еще один способ. Вы можете запустить PyInstaller с помощью этой команды:

На этот раз мы используем переключатель --onedir. Внутри папки dist у нас теперь другой вывод. Напомним, что с параметром --onefile у нас был только один выходной файл.

список файлов

В нашей папке dist есть много файлов .so. Файлы с расширением .so являются файлами Shared Objects. В Windows это будут .dll. В Linux вы можете получить отзывы о файлах .so с помощью команды ldd.

Чтобы запустить окончательный исполняемый файл и получить вывод, мы должны вызвать из командной строки:

Аргументы командной строки

Основные переключатели:

-h, –help показать это справочное сообщение и выйти
-v, –version< /td> Показать информацию о версии программы и выйти.
–distpath DIR Куда поместить связанное приложение (по умолчанию: ./dist)
–workpath WORKPATH Куда поместить все временные рабочие файлы, .log, .pyz и т. д. (по умолчанию: ./build)
-y, –noconfirm Заменить выходной каталог –upx-dir UPX_DIR Путь к утилите UPX (по умолчанию: поиск пути выполнения )
-a, –ascii Не включать поддержку кодировки Unicode (по умолчанию: включена, если доступна)
–очистить Очистить кеш PyInstaller и удалить временные файлы перед сборкой.
–УРОВЕНЬ уровня журнала Количество деталей в сообщениях консоли во время сборки. УРОВЕНЬ может быть одним из TRACE, DEBUG, INFO, WARN, ERROR, CRITICAL (по умолчанию: INFO).

Вывод для генерации:

-D, –onedir Создать пакет из одной папки, содержащий исполняемый файл (по умолчанию)
-F, --onefile Создать исполняемый файл, состоящий из одного файла.
–specpath DIR Папка для хранения сгенерированной спецификации файл (по умолчанию: текущий каталог)
-n ИМЯ, –name ИМЯ Имя для присвоения связанному приложению и файлу спецификаций (по умолчанию: первый скрипт базовое имя)

tags: install - installer - linux & category: python

PyInstaller можно использовать для создания файлов .exe для Windows, файлов .app для Mac и распространяемых пакетов для Linux. При желании он может создать один файл, который более удобен для распространения, но его запуск занимает немного больше времени, поскольку он сам распаковывает архив.

В этом руководстве рассматривается процесс установки и использования PyInstaller для создания распространяемых пакетов.

Установка

Чтобы установить PyInstaller, используйте pip и установите пакет pyinstaller.

Простая сборка

PyInstaller не является кросс-компилятором, поэтому он создаст пакет только для вашей текущей системы. Таким образом, вы должны собрать Windows из Windows, Mac из Mac и Linux из Linux.

Вывод будет в папке dist/ .

Сборка с файлом .spec

Создайте файл .spec

Чтобы создать файл .spec, используйте pyi-makespec, входящий в состав пакета pyinstaller. Предоставьте pyi-makespec файл/приложение Python, которое вы хотите упаковать, и он сгенерирует файл спецификации.

Обратите внимание, что вы можете передать все обычные флаги командной строки, которые вы бы передали pyinstaller, в pyi-makespec, и эти параметры будут включены в файл спецификаций.

Настроить файл .spec

Измените файл .spec в соответствии со своими потребностями. Это может включать добавление файлов ресурсов, таких как изображения, значки, файлы конфигурации или шаблоны Designer .ui. Кроме того, вы можете отключить консоль, если это приложение с графическим интерфейсом.

Включить файлы

Чтобы добавить произвольные файлы, измените строку в файле .spec, содержащую datas=[] . Он должен содержать список кортежей. Каждый кортеж должен содержать два значения: файл(ы) для включения и целевой каталог. Например, чтобы включить все файлы .ui из каталога templates/ в каталог templates/ окончательного распространяемого пакета, измените файл спецификации следующим образом:

Отключить консоль

Если у вас есть приложение с графическим интерфейсом, такое как приложение PyQt5, Tkinter, PyGame или GTK+, вы можете отключить консоль, чтобы окно с командной строкой не отображалось в дополнение к обычному желаемому окну с графическим интерфейсом. Вы можете отключить консоль, изменив Console=True в файле .spec на Console=False следующим образом:

Изменить значок файла

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

Inedo's Icon Maker можно загрузить из выпусков GitHub в виде ZIP-файла. Разархивируйте файл, чтобы получить IconMaker.exe. Запустите его и перетащите файл изображения в окно. Он принимает изображения размером до 256 x 256 пикселей.

Чтобы изменить значок .exe, вы можете передать --icon=icon.ico команде pyi-makespec или изменить файл .spec самостоятельно, изменив объект exe, добавив аргумент icon='icon .ico' .

Создать пакет

Как только файл .spec будет соответствовать вашим стандартам, используйте pyinstaller и передайте ему файл .spec в качестве первого аргумента. Он будет использовать информацию, указанную в файле, для создания окончательного распространяемого пакета.

Вывод будет в папке dist/ так же, как при сборке без файла .spec.

Заключение

После прочтения этого руководства вы сможете создавать распространяемые приложения Python с помощью PyInstaller.

Читайте также: