【发布时间】:2022-08-20 02:46:56
【问题描述】:
我试图在 docker python:3.9.13-alpine3.16 中安装 python 模块 psutil
但是它报告了以下错误:
Building wheels for collected packages: psutil
Building wheel for psutil (pyproject.toml) ... error
error: subprocess-exited-with-error
× Building wheel for psutil (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [51 lines of output]
/tmp/tmpb62wij4i.c:1:10: fatal error: linux/ethtool.h: No such file or directory
1 | #include <linux/ethtool.h>
| ^~~~~~~~~~~~~~~~~
compilation terminated.
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-cpython-39
creating build/lib.linux-x86_64-cpython-39/psutil
copying psutil/__init__.py -> build/lib.linux-x86_64-cpython-39/psutil
copying psutil/_common.py -> build/lib.linux-x86_64-cpython-39/psutil
copying psutil/_compat.py -> build/lib.linux-x86_64-cpython-39/psutil
copying psutil/_psaix.py -> build/lib.linux-x86_64-cpython-39/psutil
copying psutil/_psbsd.py -> build/lib.linux-x86_64-cpython-39/psutil
copying psutil/_pslinux.py -> build/lib.linux-x86_64-cpython-39/psutil
copying psutil/_psosx.py -> build/lib.linux-x86_64-cpython-39/psutil
copying psutil/_psposix.py -> build/lib.linux-x86_64-cpython-39/psutil
copying psutil/_pssunos.py -> build/lib.linux-x86_64-cpython-39/psutil
copying psutil/_pswindows.py -> build/lib.linux-x86_64-cpython-39/psutil
creating build/lib.linux-x86_64-cpython-39/psutil/tests
copying psutil/tests/__init__.py -> build/lib.linux-x86_64-cpython-39/psutil/tests
copying psutil/tests/__main__.py -> build/lib.linux-x86_64-cpython-39/psutil/tests
copying psutil/tests/foo.py -> build/lib.linux-x86_64-cpython-39/psutil/tests
copying psutil/tests/runner.py -> build/lib.linux-x86_64-cpython-39/psutil/tests
copying psutil/tests/test_aix.py -> build/lib.linux-x86_64-cpython-39/psutil/tests
copying psutil/tests/test_bsd.py -> build/lib.linux-x86_64-cpython-39/psutil/tests
copying psutil/tests/test_connections.py -> build/lib.linux-x86_64-cpython-39/psutil/tests
copying psutil/tests/test_contracts.py -> build/lib.linux-x86_64-cpython-39/psutil/tests
copying psutil/tests/test_linux.py -> build/lib.linux-x86_64-cpython-39/psutil/tests
copying psutil/tests/test_memleaks.py -> build/lib.linux-x86_64-cpython-39/psutil/tests
copying psutil/tests/test_misc.py -> build/lib.linux-x86_64-cpython-39/psutil/tests
copying psutil/tests/test_osx.py -> build/lib.linux-x86_64-cpython-39/psutil/tests
copying psutil/tests/test_posix.py -> build/lib.linux-x86_64-cpython-39/psutil/tests
copying psutil/tests/test_process.py -> build/lib.linux-x86_64-cpython-39/psutil/tests
copying psutil/tests/test_sunos.py -> build/lib.linux-x86_64-cpython-39/psutil/tests
copying psutil/tests/test_system.py -> build/lib.linux-x86_64-cpython-39/psutil/tests
copying psutil/tests/test_testutils.py -> build/lib.linux-x86_64-cpython-39/psutil/tests
copying psutil/tests/test_unicode.py -> build/lib.linux-x86_64-cpython-39/psutil/tests
copying psutil/tests/test_windows.py -> build/lib.linux-x86_64-cpython-39/psutil/tests
running build_ext
building \'psutil._psutil_linux\' extension
creating build/temp.linux-x86_64-cpython-39
creating build/temp.linux-x86_64-cpython-39/psutil
gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -DTHREAD_STACK_SIZE=0x100000 -fPIC -DPSUTIL_POSIX=1 -DPSUTIL_SIZEOF_PID_T=4 -DPSUTIL_VERSION=591 -DPSUTIL_LINUX=1 -DPSUTIL_ETHTOOL_MISSING_TYPES=1 -I/usr/local/include/python3.9 -c psutil/_psutil_common.c -o build/temp.linux-x86_64-cpython-39/psutil/_psutil_common.o
gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -DTHREAD_STACK_SIZE=0x100000 -fPIC -DPSUTIL_POSIX=1 -DPSUTIL_SIZEOF_PID_T=4 -DPSUTIL_VERSION=591 -DPSUTIL_LINUX=1 -DPSUTIL_ETHTOOL_MISSING_TYPES=1 -I/usr/local/include/python3.9 -c psutil/_psutil_linux.c -o build/temp.linux-x86_64-cpython-39/psutil/_psutil_linux.o
psutil/_psutil_linux.c:19:10: fatal error: linux/version.h: No such file or directory
19 | #include <linux/version.h>
| ^~~~~~~~~~~~~~~~~
compilation terminated.
error: command \'/usr/bin/gcc\' failed with exit code 1
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for psutil
Failed to build psutil
ERROR: Could not build wheels for psutil, which is required to install pyproject.toml-based projects
复发过程:
- 码头拉蟒蛇:3.9.13-alpine3.16
- docker run --name alpine-python3 -it [image-id] /bin/sh
- (在容器中)# apk add build-base
- (在容器中)# pip install psutil
关键错误:
/tmp/tmpb62wij4i.c:1:10: fatal error: linux/ethtool.h: No such file or directory
1 | #include <linux/ethtool.h>
| ^~~~~~~~~~~~~~~~~psutil/_psutil_linux.c:19:10:致命错误:linux/version.h:没有这样的文件或目录
19 | #include <linux/version.h>
| ^~~~~~~~~~~~~~~~~
编译终止。
错误:命令 \'/usr/bin/gcc\' 失败,退出代码为 1那么,我需要预先安装什么来修复?谢谢!
-
gcc --version的输出是什么 -
我对重现的步骤有疑问。 1.
python:3.9.13-alpine3.16不应该与gcc一起提供 2. 您的运行命令缺少图像。 -
我用
apk add build-base -
gcc (Alpine 11.2.1_git20220219) 11.2.1 20220219 版权所有 (C) 2021 Free Software Foundation, Inc. 这是免费软件;查看复制条件的来源。没有保修;甚至不考虑适销性或特定用途的适用性。
标签: python makefile alpine psutil