Как скомпилировать python в linux

Обновлено: 04.07.2024

Установка PyInstaller не отличается от установки любой другой библиотеки Python.

Вот так можно проверить версию PyInstaller.

Я использую PyInstaller версии 4.2.

Создание exe файла с помощью PyInstaller

PyInstaller собирает в один пакет Python-приложение и все необходимые ему библиотеки следующим образом:

  1. Считывает файл скрипта.
  2. Анализирует код для выявления всех зависимостей, необходимых для работы. spec, который содержит название скрипта, библиотеки-зависимости, любые файлы, включая те параметры, которые были переданы в команду PyInstaller.
  3. Собирает копии всех библиотек и файлов вместе с активным интерпретатором Python.
  4. Создает папку BUILD в папке со скриптом и записывает логи вместе с рабочими файлами в BUILD.
  5. Создает папку DIST в папке со скриптом, если она еще не существует.
  6. Записывает все необходимые файлы вместе со скриптом или в одну папку, или в один исполняемый файл.

Если использовать параметр команды onedir или -D при генерации исполняемого файла, тогда все будет помещено в одну папку. Это поведение по умолчанию. Если же использовать параметр onefile или -F , то все окажется в одном исполняемом файле.

Возьмем в качестве примера простейший скрипт на Python c названием simple.py, который содержит такой код.

Создадим один исполняемый файл. В командной строке введите:

После завершения установки будет две папки, BUILD и DIST, а также новый файл с расширением .spec. Spec-файл будет называться так же, как и файл скрипта.

папки, BUILD и DIST, а также файл .spec

Python создает каталог распространения, который содержит основной исполняемый файл, а также все динамические библиотеки.

 исполняемый файл

Вот что произойдет после запуска файла.

Добавление файлов с данными

Также, открыв spec-файл, можно увидеть раздел datas, в котором указывается, что файл netflix_titles.csv копируется в текущую директорию.

Запустим файл simple1.exe, появится консоль с выводом: Всего фильмов: 7787 .

Добавление файлов с данными и параметр onefile

Скрипт обновлен для чтения папки TEMP и файлов с данными. Создадим exe-файл с помощью onefile и add-data.

После успешного создания файл simple1.exe появится в папке DIST.

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

Добавление файлов с данными и параметр onefile

Дополнительные импорты с помощью Hidden Imports

Исполняемому файлу требуются все импорты, которые нужны Python-скрипту. Иногда PyInstaller может пропустить динамические импорты или импорты второго уровня, возвращая ошибку ImportError: No module named …

Для решения этой ошибки нужно передать название недостающей библиотеки в hidden-import.

Например, чтобы добавить библиотеку os, нужно написать вот так:

Файл spec

Файл spec — это первый файл, который PyInstaller создает, чтобы закодировать содержимое скрипта Python вместе с параметрами, переданными при запуске.

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

Файл с расширением .spec сохраняется по умолчанию в текущей директории.

Если у вас есть какое-либо из нижеперечисленных требований, то вы можете изменить файл спецификации:

  • Собрать в один бандл с исполняемым файлы данных.
  • Включить другие исполняемые файлы: .dll или .so.
  • С помощью библиотек собрать в один бандл несколько программы.

Например, есть скрипт simpleModel.py, который использует TensorFlow и выводит номер версии этой библиотеки.

Компилируем модель с помощью PyInstaller:

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

Исправим ее, обновив файл spec. Одно из решений — создать файл spec.

Команда pyi-makespec создает spec-файл по умолчанию, содержащий все параметры, которые можно указать в командной строке. Файл simpleModel.spec создается в текущей директории.

Поскольку был использован параметр --onefile , то внутри файла будет только раздел exe.

Если использовать параметр по умолчанию или onedir, то вместе с exe-разделом будет также и раздел collect.

Можно открыть simpleModel.spec и добавить следующий текст для создания хуков.

Создаем хуки и добавляем их в hidden imports и раздел данных.

Файлы хуков расширяют возможность PyInstaller обрабатывать такие требования, как необходимость включать дополнительные данные или импортировать динамические библиотеки.

Обычно пакеты Python используют нормальные методы для импорта своих зависимостей, но в отдельных случаях, как например TensorFlow, существует необходимость импорта динамических библиотек. PyInstaller не может найти все библиотеки, или же их может быть слишком много. В таком случае рекомендуется использовать вспомогательный инструмент для импорта из PyInstaller.utils.hooks и собрать все подмодули для библиотеки.

Скомпилируем модель после обновления файла simpleModel.spec.

Скопируем исполняемый файл на рабочий стол и увидим, что теперь он корректно отображает версию TensorFlow.

Вывод:

PyInstaller предлагает несколько вариантов создания простых и сложных исполняемых файлов из Python-скриптов:


Рисунок 1 Загрузите установочный пакет и разархивируйте его

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

2. Войдите в распакованный пакет Python и выполните тестирование среды.


Рис.2 Обнаружение условий окружающей среды и установка


Рис. 3 Экологические испытания завершены

Обнаружение среды должно выполняться в этом каталоге, потому что во время процесса обнаружения будут вызываться другие модули в этом каталоге. --Prefix - это указанный путь установки, а другие конфигурации установки можно просмотреть с помощью --help.

3. Скомпилируйте и установите

make && make install


Рисунок 4 Компиляция и установка

4. Обработка ошибок

4.1 Установочный пакет zlib отсутствует


Рисунок 5 Отсутствует zlib

Установите пакет zlib:


Рисунок 6 Установка zlib

Следует отметить, что мы компилируем исходный код, поэтому мы должны установить пакет devel для отсутствующего файла zlib.

5. Установка завершена.


Рисунок 7 Полная установка

6. Подключитесь, чтобы сделать команды python3 доступными в любом каталоге оболочки.

【Описание】 Enterprise 8 поставляется с python3, повторная установка не требуется.

как скачать python на linux

В этой статье вы узнаете как скачать и установить python 3 на Linux, но я буду показывать как это делается на Ubuntu 20.04, поэтому эта инструкция подойдёт только дебиан подобных дистрибутивов.

Также если вам надо ещё установить Python на Windows,
то посмотрите статью: Как установить Python 3 на Windows.

Установка python 3 на Linux:

Примечание:

Стоит сказать, что в Ubuntu и в многих других дистрибутивов уже идёт из коробки язык программирования Python, так это можно проверить.

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

sudo apt install libreadline -gplv2 -dev libncursesw5 -dev libssl -dev libsqlite3 -dev tk -dev libgdbm -dev libc6 -dev libbz2 -dev libffi -dev zlib1g -dev

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

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

Тут мы скачиваем архив с исходниками, последней командой их разархивируем, последние что осталось скомпилировать его.

Последняя команда нужна для предотвращения замены бинарного файла Python, теперь нужно проверить, для этого вводим команду python3 -V

Как установить Python PIP на Linux Ubuntu:

Также для Python нужно обязательно установить менеджер пакетов PIP, он нужен для того, что бы устанавливать всякие библиотеки, например, через него устанавливается фреймворк django, вот команды.

Для проверки используйте эту команду.

Если у вас не какой ошибки не появилось, то значить всё правильно установилось.

Как скачать PyCharm для Linux Ubuntu:

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

Python - очень популярный язык программирования для написания различных системных скриптов в Linux. В Windows, там где не хватает возможностей командной оболочки используется PowerShell. В Linux же, когда возможностей Bash не хватает используется язык Python.

На этом языке написано огромное количество системных программ, среди них пакетный менеджер apt, видеоредактор OpenShot, а также множество скриптов, которые вы можете установить с помощью утилиты pip. В этой небольшой статье мы рассмотрим как запустить Python скрипт в Linux с помощью терминала различными способами.

Запуск python скрипта в Linux

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

print("Hello from losst!")


Для того чтобы запустить скрипт необходимо передать его интерпретатору Python. Для этого просто откройте терминал с помощью сочетания клавиш Ctrl + Alt + T, перейдите в папку со скриптом и выполните:


Если вы хотите, чтобы после выполнения скрипта открылась консоль, в которой можно интерактивно выполнять команды языка Python используйте опцию -i:

python -i script.py


Но как вы могли заметить, при запуске apt или openshot не надо писать слово python. Это намного удобнее. Давайте разберемся как это реализовать. Если вы не хотите указывать интерпретатор в командной строке, его надо указать в самом скрипте. Для этого следует в начало скрипта добавить такую строчку:


Сохраните изменения, а затем сделайте файл скрипта исполняемым с помощью такой команды:

chmod ugo+x script.py

После этого можно запустить скрипт Python просто обращаясь к его файлу:


Если убрать расширение .py и переместить скрипт в каталог, находящийся в переменной PATH, например /usr/bin/, то его можно будет выполнять вот так:

Как видите, запуск команды python Linux выполняется довольно просто и для этого даже есть несколько способов. А каким способом пользуетесь вы? Напишите в комментариях!

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

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