Как сделать файл исполняемым python raspberry

Добавил пользователь Дмитрий К.
Обновлено: 04.10.2024

Решил освоить raspberry, при этом не использовать компилируемые языки, выбор невольно остановился на Python 3. Поскольку изначально планировалось задействовать OpenCV, то на текущий момент это возможно только с OpenCV 3.0 beta которая рекомендует использовать с ней Python 3.4. Ни того ни другого в репозитории нет и пришлось собирать из исходников, по пути осваивая данный процесс. Идущим по моим следам посвящается:

Установка Python 3.4

Устанавливаем пакеты необходимые для Python:

Качаем и распаковываем исходники:

Более свежие исходники можно взять с оф.сайта

Готовим к компиляции

По правильному надо собирать при помощи checkinstall, но не получилось как ни старался. setup_tools и pip ставятся автоматически

Создаем удобные симлинки в системе:

OpenCV необходим питоновский модуль numpy - ставим

Устанавливаем необходимые OpenCV пакеты (поставил все что просил)

Cборка на raspberry занимает порядка 10-12 часов. checkinstall как и в случае с питоном работать отказался.

Чтобы Raspberry Camera стала стандартным V4L устройством /dev/video0, нужно выполнить: sudo modprobe bcm2835-v4l2

Как я мог решить мою проблему. Я хочу преобразовать мой код (.py, написанный в режиме ожидания) в исполняемый файл и запустить его на моем Raspberry Pi.

1 ответ

Переименование linux-32bits в linux-32bits-arm все еще создает файлы x86. Вам нужно скомпилировать собственный загрузчик linux-32bits-arm.

В вашем дистрибутивном каталоге PyInstaller запустите:

Затем скопируйте весь../PyInstaller/bootloader/linux-32bits-arm в каталог, где вы переименовали этот загрузчик

Favorite

Добавить в избранное

Как создать исполняемые файлы для Python (от .PY до .EXE)

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

Например, если у вас есть друзья или коллеги, с которыми вы хотите поделиться своей программой, или если вы хотите создать исполняемый файл, чтобы брать его с собой, не беспокоясь о настройке системы каждый раз, когда вам придется ее использовать, эта статья – то, чего вы ждали!

Для этого мы будем использовать инструмент под названием pyinstaller.

Pyinstaller отлично работает как в Windows, так и в Linux и Mac OS, и поэтому все команды, которые мы покажем вам в этой статье, будут такими же, что и вам, независимо от того, в какой операционной системе вы находитесь.

Также очень важно помнить, что pyinstaller не является кросс-компилятором, или, как многие из вас уже предполагали, вы можете создавать исполняемые файлы только для используемой вами операционной системы.

Если вы хотите создать файл .exe, например, а затем исполняемый файл для Windows, вы можете сделать это только из Windows. То же самое относится к файлам .app, которые можно использовать в Mac OS, и для исполняемых файлов Linux.

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

После того, как это будет сделано, мы можем использовать его как любое программное обеспечение в командной строки, точно так же, как мы устанавливаем модули через pip:

Давайте посмотрим на вывод в папке, над которой мы работаем, и увидим, что были созданы некоторые новые файлы и папки.

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

Как видите, все работает отлично, и мы можем использовать программу без необходимости знать, как использовать Python, как его настроить, как создать виртуальную среду, установить необходимые зависимости и так далее!

Внутри этого исполняемого файла есть все, что необходимо для правильной работы нашей программы.

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

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

Мы советуем вам делать тесты и экспериментировать самостоятельно, чтобы полностью понять, что мы имеем в виду.

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

Удачного кодирования! : D

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

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

В этом уроке мы будем использовать Raspberry Pi в качестве локального веб-сервера, где мы будем управлять с помощью простой веб-страницы, 3 из ее GPIO запрограммированы как выходы (действуя какприводы) и контролировать 2 его GPIO, запрограммированных как входы (датчиков).


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

и видео ниже может дать подсказку об этом:

Обратите внимание, что то, что вы узнаете здесь в терминах Python WebServer с использованием Flask, может быть применено непосредственно к любой машине с Linux / OS и с некоторыми адаптациями для ПК с Windows (к сожалению, не моя область знаний).


Установка колбы

Первое, что нужно сделать, это установить Flask на Raspberry Pi. Перейдите в терминал и введите:

Лучше всего, когда вы начинаете новый проект, это создать папку, где ваши файлы будут организованы. Например:

В этой папке давайте создадим 2 другие подпапки:статическийдля CSS и в конечном итоге файлы JavaScript ишаблоныдля файлов HTML (или, точнее, шаблонов Jinja2. Но не беспокойтесь об этом),Перейдите в созданную вами новую папку:

И создайте 2 новые подпапки:

Приложение Python WebServer

Теперь давайте создадим наш первый Python WebServer с Flask:

Что делает приведенный выше код:

1. Загрузите модуль Flask в ваш скрипт на Python:

2. Создайте объект Flask с именем app:

Raspberry PI IP-адрес:

Если вы не уверены в своем IP-адресе RPi, запустите на своем терминале:

В разделе wlan0: вы найдете его. В моем случае:

Запуск приложения

Теперь запустите вышеуказанную прикладную программу:

На первом изображении выше вы можете увидеть, что появится на вашем терминале. Приложение будет работать, если вы не введете [CTRL] + [C].




Шаблоны

GEANY можно использовать для работы со всеми файлами проекта одновременно (.py; .html и css) это хороший вариант для более крупных и сложных проектов

Хорошо, давайте создадим/templates/index.html:

Заметьте, что-нибудь вдвойные фигурные скобкивнутри шаблона HTML интерпретируется как переменная, которая будет передана ему из скрипта Python через функцию render_template.

Теперь давайте создадим новый скрипт Python. Мы назовем этоhelloWorldTemplate.py:

Следующая важная вещь в приведенном выше коде заключается в том, что мы создали словарь переменных (набор ключей, например заголовок, связанный со значениями, например, HELLO!) Для передачи в шаблон. По возвращении мы вернемindex.htmlшаблон в веб-браузере, используя переменные вtemplateDataтолковый словарь.

Выполните скрипт Python:

Откройте любой веб-браузер и введите IP-адрес RPi. На картинке выше показан результат.

Теперь давайте добавим некоторые стили на нашу страницу, создадим файл CSS и сохраним его в /static/style.css:

На картинке ниже показана веб-страница с новым стилем!


Для более подробного обзора Flask с Raspberry Pi посетите проект Raspberry Pi Organization:питон-веб-сервер с Колбой,


Аппаратное обеспечение очень простое. Выполняйте только указанные выше электрические подключения.

Скрипт Python

Давайте создадим новый скрипт Python и назовем его app.py:

Как только вы создадите app.py, запустите его на своем терминале:

Шаблон

Давайте также создадим новый index.html для отображения состояния GPIO обоих датчиков:

Не забудьте обновить страницу, чтобы увидеть результаты.

На рисунке показана веб-страница.


Скрипт Python

Давайте создадим новый скрипт Python и назовем его app.py:

С веб-страницы будут генерироваться звонки в формате:

Шаблон

Ниже файла style.css:

На рисунке показан веб-сайт для управления нашими приводами.



Теперь мы должны собрать две части, которые мы разработали ранее. Окончательный скрипт Python показан ниже:

И последний index.html:

На рисунке показана окончательная веб-страница.


Как мы кратко обсуждали ранее,функция render_template ()вызываетJinja2 шаблондвигатель, который поставляется в комплекте с фреймворком. Jinja2 заменяет блоки > соответствующими значениями, заданными аргументами в вызове render_template ()

На рисунке ниже показан результат:


Это всего лишь небольшой вкус того, что можно сделать с помощью Python и Flask. Если вы действительно хотите углубиться в Flask, вы можете следовать замечательному руководству от Мигеля Гримберга:Flask Mega Tutorial,


Как всегда, я надеюсь, что этот проект поможет другим найти свой путь в захватывающий мир электроники!

Для получения подробной информации и окончательного кода, пожалуйста, посетите мой депозитарий GitHub:RPi-Колба-WebServer

А чтобы узнать, как работать с данными, графикой и базами данных, вы также можете посмотреть мое руководство:От данных к графику. веб-джорни с Flask и SQLite

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