ruamel.yaml без компилятора C на ARM

Я пытаюсь установить ruamel.yaml в систему Raspberry Pi без компилятора C и сталкиваюсь с ошибкой сборки при установке ruamel.yaml.clib (вставлено ниже).

Я вижу, что ранее это было адресовано для ruamel.yaml>=0.15.41, <0.16.0 (Как установить ruamel.yaml w /o родное расширение).

Обратите внимание на приведенный ниже вывод, что path from buildroot недействителен на устройстве, на котором выполняется установка pip, а на устройстве, на котором был создан образ.

$ pip install ruamel.yaml~=0.16
Defaulting to user installation because normal site-packages is not writeable
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting ruamel.yaml~=0.16
  Using cached ruamel.yaml-0.17.10-py3-none-any.whl (108 kB)
Collecting ruamel.yaml.clib>=0.1.2; platform_python_implementation == "CPython" and python_version < "3.10"
  Using cached ruamel.yaml.clib-0.2.6.tar.gz (180 kB)
    ERROR: Command errored out with exit status 1:
     command: /usr/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-2t0ptfu4/ruamel-yaml-clib/setup.py'"'"'; __file__='"'"'/tmp/pip-install-2t0ptfu4/ruamel-yaml-clib/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-zdtfb19x
         cwd: /tmp/pip-install-2t0ptfu4/ruamel-yaml-clib/
    Complete output (3 lines):
    sys.argv ['/tmp/pip-install-2t0ptfu4/ruamel-yaml-clib/setup.py', 'egg_info', '--egg-base', '/tmp/pip-pip-egg-info-zdtfb19x']
    test compiling /tmp/tmp_ruamel_5les1064/test_ruamel_yaml.c -> test_ruamel_yaml compile error: /tmp/tmp_ruamel_5les1064/test_ruamel_yaml.c
    Exception: command '{path from buildroot}/aarch64-buildroot-linux-gnu-gcc' failed with exit status 1
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

Предпочтительным решением было бы иметь колесо ruamel.yaml.clib для архитектур ARM или сделать зависимость clib необязательной (pip install ruamel.yaml[clib])


person Daniel McKnight    schedule 14.07.2021    source источник
comment
Можно ли сделать зависимость clib необязательной только для архитектуры ARM? Я не хочу, чтобы (большинство) пользователей, у которых есть колесо для их архитектуры, должны были менять свои установки.   -  person Anthon    schedule 15.07.2021
comment
Вопросы и ответы в Stack Overflow должны быть единым целым. Таким образом, не должно быть записей UPDATE: или EDIT:. Другие могут легко увидеть, что сообщение было отредактировано/улучшено, и какие изменения были внесены, если они заинтересованы.   -  person Anthon    schedule 15.07.2021
comment
Меня больше всего беспокоит то, что когда clib необходимо собрать из исходного кода, установка завершится ошибкой, если пользователь ранее не установил компилятор c. Я согласен, что было бы лучше установить clib по умолчанию, но я не уверен, как это можно указать, чтобы исключить требование по умолчанию.   -  person Daniel McKnight    schedule 16.07.2021


Ответы (1)


Я не уверен, почему это сломалось после 0.16, но я попытаюсь выяснить, почему это снова не работает (возможно, setuptools теперь выдает другое исключение, которое не перехватывается).

Колеса для ruamel.yaml.clib в архитектуре aarch64 доступны на piwheels.

Вы сможете установить их после добавления:

[global]
extra-index-url=https://www.piwheels.org/simple

to /etc/pip.conf.

Отказ от ответственности: я не могу контролировать, как генерируются колеса на piwheels.

person Anthon    schedule 15.07.2021
comment
Похоже, пипс ищет и piwheels, но для python 3.8 колеса нет - person Daniel McKnight; 16.07.2021
comment
Извините, что пропустил, я видел четыре пакета и предположил, не рассматривая достаточно близко, что они были для 3,6/3,7/3,8/3,9. Новые очки могут быть уместны. Вы случайно не знаете, есть ли у manylinux2014_aarch64 диски, например, от . pyzmq работает как для arm6l, так и для arm7l, как это предусмотрено на piwheels? - person Anthon; 17.07.2021
comment
Только что протестировал pyzmq и установил. ``` Сбор pyzmq Загрузка pyzmq-22.1.0-cp38-cp38-manylinux2014_aarch64.whl (1,8 МБ) |███████████████████████ ██████| 1,8 МБ 4,5 МБ/с Установка собранных пакетов: pyzmq Успешно установлен pyzmq-22.1.0 ``` - person Daniel McKnight; 20.07.2021