Reputation: 44331
I have a wheel that I can install in my host computer, but can not be installed on a docker container. Some details:
pip
is the same in both systems (pip 21.3.1
)I am running the install command with:
pip install ./coverage-5.5-cp36-cp36m-manylinux2010_x86_64.whl
My host system is happy, but the docker container fails with:
ERROR: coverage-5.5-cp36-cp36m-manylinux2010_x86_64.whl is not a supported wheel on this platform.
I would like to know exactly what criteria pip install
is using to decide whether the package is installable or not:
After tampering with the pip
sources, it seems my wheel is tagged cp36-cp36m-manylinux2010_x86_64
according to pip, but the docker system supports (amongst a gazillion more), cp36-cp36dm-manylinux2010_x86_64
. That's the closest one, but there is a d
which I do not know what it means.
So now I need to understand the difference between cp36m
and cp36dm
Upvotes: 2
Views: 1262
Reputation: 280217
cp36dm
is the ABI tag, and the d
means a debug build. Your docker container seems to be using a debug build of Python 3.6, which is incompatible with C extension code compiled for non-debug builds. (Python 3.8 removes this incompatibility, but you're on 3.6.)
Upvotes: 2