ruamel.yaml 在 ARM 上不带 C 编译器

如何解决ruamel.yaml 在 ARM 上不带 C 编译器

我试图在没有 C 编译器的树莓派系统上安装 ruamel.yaml,但在安装 ruamel.yaml.clib(粘贴如下)时遇到构建错误

我看到之前已针对 ruamel.yaml>=0.15.41,<0.16.0 (How to install ruamel.yaml w/o native extension) 解决了此问题。

请注意,在下面的输出中,path from buildroot 在运行 pip install 的设备上无效,而是来自构建映像的设备。

$ 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.

首选的解决方案是为 ARM 架构提供一个 ruamel.yaml.clib 轮子,或者使 clib 依赖项可选 (pip install ruamel.yaml[clib])

解决方法

我不确定为什么这会在 0.16 之后崩溃,但我会尝试看看为什么会再次失败(可能是 setuptools 现在抛出了一个未捕获的不同异常)。

if ($fields[0] =~ /^\s*EM\s*$/) { $fields[3] =~ s/^\s*|\s*$//g; # strip leading/trailing spaces push @values1,$fields[3]; } 架构中 ruamel.yaml.clib 的轮子在 piwheels 上可用。

您应该可以在添加后安装它们:

aarch64

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

免责声明:我无法控制 piwheels 上的轮子是如何生成的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?