簡體   English   中英

在 Docker 容器中導入 python 文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM