这一定是一个常见的问题,但我找不到正确的答案:运行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
似乎您正在尝试从workdir执行脚本,但您正在将数据复制到容器中的根文件夹中
创建docker,运行它并检查在
COPY
命令中复制的文件是否在正确的文件夹中您可以通过运行
docker compose exec <name of your container> ls
来执行此操作,并检查ls
命令是否列出您试图调用的文件夹在混乱之后,我通过在Dockerfile中设置PYTHONPATH env变量来运行容器:
相关问题 更多 >
编程相关推荐