I am trying to build a python package with a c extension to be used in a Docker container.
I create a python wheel as follows:
python install bdist_wheel
and the package looks (more or less) like
cpack
__init__.py
/cpp
__init__.py
c_extension.cpython-37m-x86_64_linux-gnu.so
...
and use the following Dockerfile.
FROM python:3.8-slim-buster
WORKDIR /home/user
COPY --chown=user:user requirements.txt /tmp/requirements.txt
RUN python -m venv user
RUN user/bin/pip install -r /tmp/requirements.txt
RUN user/bin/pip install wheel
RUN user/bin/pip install my_c_package-0.0.1-py3-none-any.whl
USER user
...
When I install my my_c_package-0.0.1-py3-none-any.whl locally I have no issues, but on docker I get
import cpack
...
ModuleNofFoundError: No module named cpack.cpp.c_extension
As it works fine locally, it is not clear to me what is missing?