pip搜索找到tensorflow,但pip安装未找到

时间:2019-01-02 22:36:47

标签: python-3.x docker tensorflow dockerfile

我正在尝试构建一个将使用Keras模型提出建议的Django应用。现在,我正在尝试使用一个可容纳Django和Keras的自定义容器。这是我编写的Dockerfile。

filter

问题是,当我尝试构建应用程序映像时,即使reduce在结果中列出了tensorflow(1.12),pip也无法安装tensorflow。

# myproject/docker/app/Dockerfile

FROM python:3.7-alpine  # I've tried 3.5, 3.6 and 3.7

RUN apk add --no-cache postgresql-libs && \
  apk add --no-cache --virtual .build-deps \
    gfortran \
    build-base \
    freetype-dev \
    libpng-dev \
    openblas-dev \
    postgresql-dev \
    python3-dev \
    wget

WORKDIR /app
COPY ./misc/requirements.txt /app/
RUN pip search tensorflow
RUN pip install tensorflow
RUN pip install -r /app/requirements.txt

COPY . /app

EXPOSE 8000
ENTRYPOINT ["exec /start.sh"]

我是否必须从源头构建张量流?

编辑
写下这个问题使我意识到我可以使用两个单独的容器:一个用于我的Django应用程序,另一个是使用gpu预先构建的tensorflow。我仍然想学习如何解决这样的问题,但是任何指向文档的如何使两个单独的Docker容器交谈的指针,我们将不胜感激。

2 个答案:

答案 0 :(得分:3)

它看起来像tensorflow original source code(最多3.6),而Alpine linux是only publishes wheels,因为它使用的是musl而不是glibc。因此,pip找不到合适的安装候选者而失败。最好的选择可能是从源代码构建或更改基本映像。

答案 1 :(得分:0)

根据您的工作,考虑是否完全需要alpine。如果您和我一样,并且仅使用apk add安装允许您安装某些Python软件包的程序,则最好删除所有apk add命令并将FROM python:3.6-alpine替换为{ {1}}。 Tensorflow的安装没有任何问题。

编辑:没关系,FROM python:3.6仍然可以简单地安装Ubuntu。如果您正在寻找较小的图像而没有Alpine的某些缺点,请考虑改用FROM python:3.6