在Docker容器中导入python文件

2024-09-30 10:27:16 发布

您现在位置:Python中文网/ 问答频道 /正文

这一定是一个常见的问题,但我找不到正确的答案:运行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"]

Tags: docker答案inpyimportappmain错误
2条回答

您需要查看安装时使用的WORKDIR

似乎您正在尝试从workdir执行脚本,但您正在将数据复制到容器中的根文件夹中

创建docker,运行它并检查在COPY命令中复制的文件是否在正确的文件夹中

您可以通过运行docker compose exec <name of your container> ls来执行此操作,并检查ls命令是否列出您试图调用的文件夹

在混乱之后,我通过在Dockerfile中设置PYTHONPATH env变量来运行容器:

ENV PYTHONPATH "${PYTHONPATH}:/app/"

相关问题 更多 >

    热门问题