Python项目可以';在Docker中找不到模块
出于机器学习的目的,我正在尝试使用以下docker文件在docker内部运行python项目:Python项目可以';在Docker中找不到模块,python,docker,Python,Docker,出于机器学习的目的,我正在尝试使用以下docker文件在docker内部运行python项目: FROM python:3 RUN apt-get update \ && apt-get install -yq --no-install-recommends \ python3 \ python3-pip RUN pip3 install --upgrade pip==9.0.3 \ && pip3 install setupto
FROM python:3
RUN apt-get update \
&& apt-get install -yq --no-install-recommends \
python3 \
python3-pip
RUN pip3 install --upgrade pip==9.0.3 \
&& pip3 install setuptools
# for flask web server
EXPOSE 8081
# set working directory
ADD . /app
WORKDIR /app
# install required libraries
COPY requirements.txt ./
RUN pip3 install -r requirements.txt
# This is the runtime command for the container
CMD python3 app.py
这是我的需求文件:
flask
scikit-learn[alldeps]
pandas
textblob
numpy
matplotlib[alldeps]
但当我尝试导入textblob和pandas时,docker cmd中出现了一个名为“X”的无模块错误。
文件夹结构
machinelearning:
backend:
app.py
Dockerfile
requirements.txt
frontend:
... (frontend works fine.)
docker-compose.yml
有人知道这个问题的解决办法吗?
(我是Docker的新手,所以我可能只是错过了一些关键的东西。)这对我来说很有效
FROM python:3
RUN apt-get update
RUN apt-get install -y --no-install-recommends
# for flask web server
EXPOSE 8081
# set working directory
WORKDIR /app
# install required libraries
COPY requirements.txt .
RUN pip install -r requirements.txt
# copy source code into working directory
COPY . /app
# This is the runtime command for the container
CMD python3 app.py
您不需要显式安装pip或python。它们已经包含在图像中。我也不明白你为什么要贬低皮普。我将删除前两个RUN命令。另外,Docker构建的输出是什么?这可能与您运行的pip版本10旧版有关吗?我删除了前两次运行,在尝试导入前面提到的模块时,python以代码1退出,因为它无法找到需求文件中提到的模块。(同样的结果)我只是按原样运行它,即使安装了冗余python并降级了pip,正如@MiesvanderLippe所提到的,它仍然可以正常工作并导入模块。可能是路径相关的问题。请告诉我们您的应用程序的结构(当您将整个目录复制到/app时,为什么要处理requirements.txt)或docker build的输出。另外,请不要图片。我将文件夹结构添加到原始邮件中。然后您可以导入textblob和pandas吗?Jip它起作用了,可能只是刷新您的requirements.txt
pipfreeze>requirements.txt
我试图创建一个全新的docker项目,这对我来说也很有效。超级奇怪为什么它不能与以前的项目一起工作。