Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Docker:无法安装Tensorflow和numpy_Python_Docker_Numpy_Tensorflow_Flask - Fatal编程技术网

Python Docker:无法安装Tensorflow和numpy

Python Docker:无法安装Tensorflow和numpy,python,docker,numpy,tensorflow,flask,Python,Docker,Numpy,Tensorflow,Flask,如何在Docker映像中安装Numpy和tensorflow 我正在尝试创建此简单烧瓶应用程序的图像: import numpy as np import tensorflow as tf from flask import Flask, jsonify print(tf.__version__) with open('../assets/model/v1/model_architecture_V1.json', 'r') as f: model_json = f.read()

如何在Docker映像中安装Numpy和tensorflow

我正在尝试创建此简单烧瓶应用程序的图像:

import numpy as np
import tensorflow as tf

from flask import Flask, jsonify

print(tf.__version__)

with open('../assets/model/v1/model_architecture_V1.json', 'r') as f:
    model_json = f.read()

model = tf.keras.models.model_from_json(model_json)

model.load_weights("../assets/model/v1/model_weight_V1.h5")

app = Flask(__name__)

@app.route("/api/v1", methods=["GET"])
def getPrediction():

    prediction = model.predict()

    return jsonify({"Fe": 3123 })

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=4000, debug=True)
这是我的文件

FROM alpine:3.10

RUN apk add --no-cache python3-dev \
    && pip3 install --upgrade pip

WORKDIR /app

COPY . /app

RUN pip3 --no-cache-dir install -r requirements.txt

CMD ["python3","src/app.py"]
这是我的requirements.txt:

Flask==1.1.2
numpy==1.18.1
tensorflow==2.0.0
当我构建图像时,Docker抛出一个错误,表示找不到tensorflow和numpy

错误:


这里的问题似乎是缺少从
.whl
文件构建包的库。 在为python创建Docker映像时,我建议您使用正式的Debian映像,该映像包含大量库,如
tensorflow

请使用Debian Buster查看下面的Dockerfile

FROM python:3.7.5-buster
RUN echo \
   && apt-get update \
   && apt-get --yes install apt-file \
   && apt-file update
RUN echo \
   && apt-get --yes install build-essential
ARG USER=nobody
RUN usermod -aG sudo $USER
RUN pip3 install --upgrade pip
COPY . /app
WORKDIR /app
RUN pip3 --no-cache-dir install -r requirements.txt
USER $USER
# Using 4000 here as you used 4000 in the code. Flask has a default of 5000
EXPOSE 4000
ENTRYPOINT ["python"]
CMD ["app/app.py"]
我使用以下命令来构建和运行docker映像,并在
http://0.0.0.0:4000/api/v1

docker build -t tfdocker:v1 . 
docker run -p 4000:4000 -t tfdocker:v1
供参考: 这是我的目录结构:

├── Dockerfile
├── app
│   └── app.py
└── requirements.txt

1 directory, 3 files
requirements.txt
的内容如下:

Flask==1.1.2
numpy==1.18.4
tensorflow==2.2.0

希望这有帮助

这里的问题似乎是缺少从
.whl
文件构建包的库。 在为python创建Docker映像时,我建议您使用正式的Debian映像,该映像包含大量库,如
tensorflow

请使用Debian Buster查看下面的Dockerfile

FROM python:3.7.5-buster
RUN echo \
   && apt-get update \
   && apt-get --yes install apt-file \
   && apt-file update
RUN echo \
   && apt-get --yes install build-essential
ARG USER=nobody
RUN usermod -aG sudo $USER
RUN pip3 install --upgrade pip
COPY . /app
WORKDIR /app
RUN pip3 --no-cache-dir install -r requirements.txt
USER $USER
# Using 4000 here as you used 4000 in the code. Flask has a default of 5000
EXPOSE 4000
ENTRYPOINT ["python"]
CMD ["app/app.py"]
我使用以下命令来构建和运行docker映像,并在
http://0.0.0.0:4000/api/v1

docker build -t tfdocker:v1 . 
docker run -p 4000:4000 -t tfdocker:v1
供参考: 这是我的目录结构:

├── Dockerfile
├── app
│   └── app.py
└── requirements.txt

1 directory, 3 files
requirements.txt
的内容如下:

Flask==1.1.2
numpy==1.18.4
tensorflow==2.2.0

希望这有帮助

您能否详细说明您获得的确切错误?您是否使用不同的基本图像进行了测试,例如
python:3
?这是否回答了您的问题?您能否详细说明您获得的确切错误?您是否使用不同的基本图像进行了测试,例如
python:3
?这是否回答了您的问题?谢谢,我最终放弃了官方文件:但是你的代码看起来很有趣。为什么你建议使用Debian buster而不是Python?如果你能帮助我,我有一个问题。现在是mi dockerFile:*********来自python:3 WORKDIR/app COPY requirements.txt./RUN pip install--no cache dir-r requirements.txt COPY。CMD[“python3”,“src/app.py”]**********现在的问题是资产没有被复制。该应用程序向我抛出一个错误,表示找不到模型编辑看起来您的
模型
路径在当前目录下的
Docker
上下文之外(您正在引用
)。如果你想复制模型目录,你需要将它复制到你的工作目录(你用来构建图像的目录-通常当前目录用
/指示你的Dockerfile在哪里)。谢谢,我最终放弃了官方文档:但是你的代码似乎很有趣。为什么你建议使用Debian buster而不是Python?如果你能帮助我,我有一个问题。现在是mi dockerFile:*********来自python:3 WORKDIR/app COPY requirements.txt./RUN pip install--no cache dir-r requirements.txt COPY。CMD[“python3”,“src/app.py”]**********现在的问题是资产没有被复制。该应用程序向我抛出一个错误,表示找不到模型编辑看起来您的
模型
路径在当前目录下的
Docker
上下文之外(您正在引用
)。如果要复制模型目录,则需要将其复制到工作目录(用于生成映像的目录-通常当前目录用
/指示Dockerfile的位置)。