ModuleNotFoundError: No module named 'versioneer'

Question:

I am using the below dockerfile to build an image .

FROM <custom registry>/python:alpine3.7
# Copy local code to the container image.
ENV APP_HOME app
WORKDIR $APP_HOME
COPY . .
#RUN pip install versioneer
RUN pip install Flask google-auth google-cloud-storage numpy datetime pandas sklearn
ENV PORT 8080
CMD ["python", "app_hello.py"]

When I tried to do a docker build it gave me the below error

File "setup.py", line 37, in <module>
      import versioneer
  ModuleNotFoundError: No module named 'versioneer'
  
  ----------------------------------------
Command "/usr/local/bin/python /usr/local/lib/python3.7/site-packages/pip/_vendor/pep517/_in_process.py get_requires_for_build_wheel /tmp/tmp8gvrvde_" failed with error code 1 in /tmp/pip-install-s551_g8p/numpy

I tried to install versioneer as well , but it did not work.
What am I missing here ?

Asked By: Ayan Biswas

||

Answers:

Command "/usr/local/bin/python /usr/local/lib/python3.7/site-packages/pip/_vendor/pep517/in_process.py get_requires_for_build_wheel /tmp/tmp8gvrvde" failed with error code 1 in /tmp/pip-install-s551_g8p/numpy

The error happens when build numpy, and this indicates you need to upgrade pip to make it work:

pip install --upgrade pip

Additional, you need install compiler for build with next:

apk add build-base

With above, a sample workable Dockerfile as next:

FROM python:alpine3.7
RUN pip install --upgrade pip; apk add build-base; pip install numpy
RUN python -c "import numpy; print(numpy.__version__)"

The output:

$ docker build -t abc:1 .
Sending build context to Docker daemon  2.048kB
Step 1/3 : FROM python:alpine3.7
 ---> 00be2573e9f7
Step 2/3 : RUN pip install --upgrade pip; apk add build-base; pip install numpy
 ---> Running in bba4eed0d626
Collecting pip
  Downloading https://files.pythonhosted.org/packages/8a/d7/f505e91e2cdea53cfcf51f4ac478a8cd64fb0bc1042629cedde20d9a6a9b/pip-21.2.2-py3-none-any.whl (1.6MB)
Installing collected packages: pip
  Found existing installation: pip 19.0.1
    Uninstalling pip-19.0.1:
      Successfully uninstalled pip-19.0.1
Successfully installed pip-21.2.2
...
Collecting numpy
  Downloading numpy-1.21.1.zip (10.3 MB)
...
Successfully built numpy
Installing collected packages: numpy
Successfully installed numpy-1.21.1
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
Removing intermediate container bba4eed0d626
 ---> 6e11968fe036
Step 3/3 : RUN python -c "import numpy; print(numpy.__version__)"
 ---> Running in 0f4c47db07cd
1.21.1
Removing intermediate container 0f4c47db07cd
 ---> f189962ad246
Successfully built f189962ad246
Successfully tagged abc:1
Answered By: atline
Categories: questions Tags: , , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.