如何解决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 举报,一经查实,本站将立刻删除。