问题描述
我正在使用下面的 dockerfile 来构建图像.
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"]
当我尝试进行 docker build 时,它给了我以下错误
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
我也尝试安装 versioneer,但没有成功.我在这里错过了什么?
I tried to install versioneer as well , but it did not work. What am I missing here ?
推荐答案
命令/usr/local/bin/python/usr/local/lib/python3.7/site-packages/pip/_vendor/pep517/in_process.py get_requires_for_build_wheel/tmp/tmp8gvrvde"失败,错误代码 1 在/tmp/pip-install-s551_g8p/numpy
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
构建numpy
时出现该错误,这表明您需要升级pip才能使其工作:
The error happens when build numpy
, and this indicates you need to upgrade pip to make it work:
pip install --upgrade pip
另外,您需要安装编译器以使用 next 进行构建:
Additional, you need install compiler for build with next:
apk add build-base
有了上面的例子,接下来是一个可行的 Dockerfile 示例:
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__)"
输出:
$ 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
这篇关于ModuleNotFoundError:没有名为“versioneer"的模块的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!