[英]Importing python files in Docker container
這一定是一個常見問題,但我找不到正確的答案:運行我的 docker 映像時,出現導入錯誤:
File "./app/main.py", line 8, in <module>
import wekinator
ModuleNotFoundError: No module named 'wekinator'`
如何在 Docker 中導入本地 python 模塊? COPY 命令不會復制整個“app”文件夾(包括兩個文件),從而保留正確的導入位置嗎?
.
├── Dockerfile
├── README.md
└── app
├── main.py
└── wekinator.py
FROM python:3.7
RUN pip install fastapi uvicorn python-osc
EXPOSE 80
COPY ./app /app
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80"]
您需要查看您在安裝時使用的WORKDIR
。
似乎您正在嘗試從您的工作目錄執行腳本,但您正在將數據復制到容器內的根文件夾中。
創建您的 docker,運行它並檢查在COPY
命令中復制的文件是否在正確的文件夾中。
您可以運行docker compose exec <name of your container> ls
並檢查ls
命令是否ls
了您嘗試調用的文件夾。
經過一番混亂之后,我通過在 Dockerfile 中設置 PYTHONPATH 環境變量來運行容器:
ENV PYTHONPATH "${PYTHONPATH}:/app/"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.