docker-compose up ModuleNotFoundError: No module named 'sqlalchemy'

docker-compose up ModuleNotFoundError: No module named 'sqlalchemy'

我是 docker 的初学者,我正在尝试 运行 烧瓶 python 应用程序,当 运行 宁 docker-compose up 时我遇到以下问题, 抛出错误:

ModuleNotFoundError: 没有名为 'sqlalchemy'

的模块

这是错误图片: docker-compose up error

这是我当前目录下的文件 my local directory

这是我的docker文件

的内容
FROM python:3.8

WORKDIR /app
COPY . /app

RUN pip install --upgrade pip
RUN pip install -r requirements.txt

ENTRYPOINT ["python"]
CMD ["app.py"]

这是我的docker-compose.yml

的内容
version: '3'

services:
  helloworld:
    build: ./
    ports:
      - "5000:5000"
    volumes:
      - ./:/app

这是我的requirements.txt

click==8.1.2
Flask==2.1.1
Flask-SQLAlchemy==2.5.1
greenlet==1.1.2
importlib-metadata==4.11.3
itsdangerous==2.1.2
Jinja2==3.1.1
MarkupSafe==2.1.1
mysqlclient==2.1.0
SQLAlchemy==1.4.35
Werkzeug==2.1.1
zipp==3.8.0

这是我的app.py

from distutils.log import debug
from flask import Flask
from sqlalchemy.engine import create_engine
from sqlalchemy.orm import sessionmaker

from models import Base
import os


app = Flask(__name__)

@app.route("/")
def hello_world():
    return "Flask sss"

if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0')

我尝试用 docker-compose down 将其拆下,当 运行ning docker-compose up 再次出现同样的错误。 有人可以指出我如何成功 运行 flask app 的正确方向吗?

尝试以下方法:

FROM python:3.8

WORKDIR /usr/src/app

COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

CMD [ "python", "./app.py" ]

还有你的docker-compose:

version: '3'

services:
  helloworld:
    build: ./
    ports:
      - "5000:5000"
    volumes:
      - ./:/usr/src/app

要构建你的容器,你可以直接运行这个内联器:

docker-compose down; docker-compose up --build --remove-orphans

如果上述方法没有帮助,我会直接从内部检查容器。您可以通过以下方式访问它:

docker-compose exec helloworld sh

从那里导航到包含文件的目录,并确保一切都在它应该在的地方;如果文件混乱或丢失,请确保您的 Dockerfiledocker-compose.yml(在您的本地电脑上)位于项目的根目录中。

这应该有帮助,但如果没有帮助,请在评论中联系我们!