高山的Linux:包安装,但模块未找到

问题描述 投票:0回答:1

我建立一个docker图像数据的科学项目。

我通过RUN apk add <package>安装核心的依赖。

Dockerfile-dev的

FROM python:3.6-alpine

#SOFTWARE PACKAGES
ENV PACKAGES="\
    dumb-init \
    musl \
    libc6-compat \
    linux-headers \
    build-base \
    bash \
    git \
    ca-certificates \
    freetype \
    libgfortran \
    libgcc \
    libstdc++ \
    openblas \
    tcl \
    tk \
    libssl1.0 \
    "
# PYTHON DATA SCIENCE PACKAGES    
ENV PYTHON_PACKAGES="\
    numpy \
    matplotlib \
    scipy \
    scikit-learn \
    pandas \
    nltk \
    "     
RUN apk add --no-cache --virtual build-dependencies python3 \
    && apk add --virtual build-runtime \
    build-base python3-dev openblas-dev freetype-dev pkgconfig gfortran \
    && ln -s /usr/include/locale.h /usr/include/xlocale.h \
    && python3 -m ensurepip \
    && rm -r /usr/lib/python*/ensurepip \
    && pip3 install --upgrade pip setuptools \
    && ln -sf /usr/bin/python3 /usr/bin/python \
    && ln -sf pip3 /usr/bin/pip \
    && rm -r /root/.cache \
    && pip install --no-cache-dir $PYTHON_PACKAGES \
    && apk del build-runtime \
    && apk add --no-cache --virtual build-dependencies $PACKAGES \
    && rm -rf /var/cache/apk/*

# add and install requirements
COPY ./requirements.txt /usr/src/app/requirements.txt
RUN pip install -r requirements.txt

一切都建立到pandas,此时这个错误出现:

    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "/usr/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 359, in get_provider
        module = sys.modules[moduleOrReq]
    KeyError: 'numpy'

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-v7gyw8y_/pandas/setup.py", line 732, in <module>
        ext_modules=maybe_cythonize(extensions, compiler_directives=directives),
      File "/tmp/pip-install-v7gyw8y_/pandas/setup.py", line 475, in maybe_cythonize
        numpy_incl = pkg_resources.resource_filename('numpy', 'core/include')
      File "/usr/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 1144, in resource_filename
        return get_provider(package_or_requirement).get_resource_filename(
      File "/usr/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 361, in get_provider
        __import__(moduleOrReq)
    ModuleNotFoundError: No module named 'numpy'

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-v7gyw8y_/pandas/

numpy已经预先安装:

运行setup.py安装numpy的:完成与状态“完成”

尚未打败,我搬到pandas==0.20.3(这个版本在我的畅达py36 ENV工作)到requirements.txt,它被安装,如日志显示:

Successfully built: pandas
Installing collected packages: pandas
Successfully installed: pandas-0.20.3

经过编译的时候,然而,在运行容器记录以下错误:

users_1     | File "/usr/src/app/project/api/classifiers/metadata/learn.py", line 14, in <module>
users_1     |     import pandas as pd
users_1     | ModuleNotFoundError: No module named 'pandas'

所以,它是由pip安装,但无法找到?

如何安装qazxsw POI通过qazxsw POI为了保持一致性,打造我的数据科学项目?

python pandas numpy docker alpine
1个回答
1
投票

添加以下行的伎俩对我来说,里面pandas

RUN apk add

我必须明确指定Dockerfile-dev版本。

© www.soinside.com 2019 - 2024. All rights reserved.