Как я могу установить модуль Python, у которого нет собственного рецепта?

Мне нужно установить модуль Python с именем flask-socketio в образ Linux, который я создаю с помощью yocto. Однако рецепта для этого модуля нет.

Есть ли простой способ взять модуль Python, который можно установить с помощью setuptools, и создать из него рецепт?


person Dave    schedule 06.05.2019    source источник
comment
Вы должны взглянуть на другой (уже включенный в openembedded) рецепт модуля python, их обычно легко портировать. Если у вас есть конкретный вопрос, не стесняйтесь спрашивать.   -  person danrodlor    schedule 06.05.2019
comment
github.com/openembedded/meta-openembedded/blob/master/ Как уже упоминалось, он уже доступен в мастере. Если вам нужна конкретная ветка стабильного релиза, вы можете выбрать или скопировать вишню.   -  person Parthiban    schedule 09.05.2019


Ответы (1)


Изменить: рецепт уже существует в основной версии meta-python здесь как указано @Parthiban

Что-то вроде этого должно сделать это:

python3-flask-socketio_3.3.2.bb

require python-flask-socketio.inc

inherit setuptools3

python-flask-socketio.inc

DESCRIPTION = "Socket.IO integration for Flask applications"
SECTION = "devel/python"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=8227180126797a0148f94f483f3e1489"
PYPI_PACKAGE = "Flask-SocketIO"

SRC_URI[md5sum] = "298965a43f6534e8a5b24d1ba1fc4186"
SRC_URI[sha256sum] = "8d8f9f104db5ddff1b06ba322d8e158881d590144199c993fe26cf53218c7edd"

inherit pypi

обратите внимание, я не проверял это.

person Nayfe    schedule 07.05.2019
comment
Спасибо! Я посмотрю на это сегодня. Знаете ли вы, соответствует ли это предварительным требованиям пакета? Я знаю, что flask-socketio нужен пакет socketio, а затем этому пакету socketio нужна куча других пакетов. Или это эквивалентно простому выполнению (pip install flask-socketio), где обрабатываются все предварительные требования? - person Dave; 07.05.2019
comment
Кроме того, не могли бы вы объяснить, как вы нашли эти хэши для пакета? - person Dave; 07.05.2019
comment
Используя inherit pypi, он будет обрабатывать все как pip install, но иногда лучше создать рецепты зависимостей и добавить в них DEPENDS/RDEPENDS, см. это. Для хэша я скачал архив и выполнил md5sum и sha256sum. - person Nayfe; 07.05.2019
comment
Я хотел бы отметить, что если вы пропустите хэши, ваша сборка заметит это и остановится с сообщением об ОШИБКЕ (предупреждая вас об отсутствующих хэшах). Вы можете найти правильные хэши внутри этого сообщения об ОШИБКЕ, уже рассчитанного Yocto. Если это даже произойдет с вами, вам нужно всего лишь скопировать и вставить их в свой рецепт. - person danrodlor; 08.05.2019
comment
@danlor именно так я и делаю большую часть времени - person Nayfe; 08.05.2019
comment
Итак, я попробовал это, и это... почти сработало. Был установлен хотя бы один из пакетов prereq (python-six), но preqreq socketio — нет, а пакет flask-socketio — нет. Я также могу попробовать настроить рецепты для других пакетов prereq. Кроме того, я использую python2. Единственное, что я изменил в этом рецепте, это использовать переключатель с inherit setuptools3 на inherit setuptools. Что-нибудь еще, что вы можете придумать, что мне может понадобиться, чтобы заставить его работать на Python 2.7? - person Dave; 09.05.2019