此平台不支持车轮
Not a supported wheel on this platform
我有一个轮子可以安装在我的主机上,但不能安装在 docker 容器上。一些细节:
- OS 两者相同 (Ubuntu 20.04)
- Python 在两个 (3.6.15) 中是相同的,但在不同的时刻编译(所以也许它们有不同的标志,我不能说)
pip
在两个系统中相同(pip 21.3.1
)
我是 运行 安装命令:
pip install ./coverage-5.5-cp36-cp36m-manylinux2010_x86_64.whl
我的主机系统正常,但 docker 容器失败并显示:
ERROR: coverage-5.5-cp36-cp36m-manylinux2010_x86_64.whl is not a supported wheel on this platform.
我想确切地知道 pip install
使用什么标准来决定软件包是否可安装:
- 是否使用了 OS 的详细信息?哪个?这些是从哪里读的?如果我知道这一点,我就能理解一个系统与另一个系统之间的区别。在我看来它们是相同的,但也许我遗漏了什么
- 它是否使用 Python 本身的详细信息,除了版本?版本相同,但可能启用的功能不同。我该如何检查?
编辑
篡改 pip
源后,根据 pip,我的车轮似乎被标记为 cp36-cp36m-manylinux2010_x86_64
,但 docker 系统支持(还有更多),cp36-cp36dm-manylinux2010_x86_64
.这是最接近的,但是有一个 d
我不知道它是什么意思。
所以现在我需要了解 cp36m
和 cp36dm
之间的区别
cp36dm
是 ABI 标签,d
表示调试版本。您的 docker 容器似乎正在使用 Python 3.6 的调试版本,它与为 non-debug 版本编译的 C 扩展代码不兼容。 (Python 3.8 removes 这种不兼容,但你使用的是 3.6。)
我有一个轮子可以安装在我的主机上,但不能安装在 docker 容器上。一些细节:
- OS 两者相同 (Ubuntu 20.04)
- Python 在两个 (3.6.15) 中是相同的,但在不同的时刻编译(所以也许它们有不同的标志,我不能说)
pip
在两个系统中相同(pip 21.3.1
)
我是 运行 安装命令:
pip install ./coverage-5.5-cp36-cp36m-manylinux2010_x86_64.whl
我的主机系统正常,但 docker 容器失败并显示:
ERROR: coverage-5.5-cp36-cp36m-manylinux2010_x86_64.whl is not a supported wheel on this platform.
我想确切地知道 pip install
使用什么标准来决定软件包是否可安装:
- 是否使用了 OS 的详细信息?哪个?这些是从哪里读的?如果我知道这一点,我就能理解一个系统与另一个系统之间的区别。在我看来它们是相同的,但也许我遗漏了什么
- 它是否使用 Python 本身的详细信息,除了版本?版本相同,但可能启用的功能不同。我该如何检查?
编辑
篡改 pip
源后,根据 pip,我的车轮似乎被标记为 cp36-cp36m-manylinux2010_x86_64
,但 docker 系统支持(还有更多),cp36-cp36dm-manylinux2010_x86_64
.这是最接近的,但是有一个 d
我不知道它是什么意思。
所以现在我需要了解 cp36m
和 cp36dm
cp36dm
是 ABI 标签,d
表示调试版本。您的 docker 容器似乎正在使用 Python 3.6 的调试版本,它与为 non-debug 版本编译的 C 扩展代码不兼容。 (Python 3.8 removes 这种不兼容,但你使用的是 3.6。)