[英]Python/Flask - Cause of module not found in the docker container
[英]Python Docker container, Module not found
我有以下項目結構
twoFlasks/
├── app.py
├── common/
│ ├── file1.py
│ ├── file2.py
│ └── file3.py
├── Dockerfile
├── requirements.txt
├── bot1/
│ │
│ ├── routes/
│ │ └── bot1_routes.py
└── bot2/
└── routes/
└── bot2_routes.py
以及以下 Dockerfile:
FROM python:3.8
WORKDIR /project
COPY requirements.txt .
COPY app.py .
RUN pip3 install -r requirements.txt
COPY bot1/ .
COPY bot2/ .
COPY common/ .
EXPOSE 5000 3000
CMD ["python", "./app.py"]
映像已成功構建,但是當我運行容器時,我在 app.py 文件的日志中收到以下錯誤消息
Traceback (most recent call last):
File "./app.py", line 9, in <module>
from bot2.routes import bot2_routes
ModuleNotFoundError: No module named 'bot2'
它在本地工作,但不在 Docker 容器中,我在這里有點不知所措。 如果有人知道可能是什么問題,我將不勝感激!
如果您使用的是 Python <3.3,那么您的包根目錄中需要一個__init__.py
文件來幫助 Python 構建命名空間: Python - Module Not Found
因此,解決我的問題的是 Dockerfile 中的更改。
COPY bot1/ ./bot1
COPY bot2/ .bot2
COPY common/ ./common
而不是僅僅將文件夾復制到 .
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.