我正在尝试运行 Docker 容器,但在尝试从配置目录导入模块“basic_config”时遇到错误“ModuleNotFoundError:没有名为‘basic_config’的模块”。尽管代码在 Windows 和 Linux 服务器上运行没有任何问题,但只有在基本 Docker 容器内运行代码时才会出现错误。我正在寻找解决此问题并能够在 Docker 容器中正确导入模块的解决方案。
这是文件结构
"""
ml-project/
enviroment/
env.dev
env.prod
src/
config/
base_config.py
model/
model1/
model.py
.env
piplines.yml
requirements.txt
"""
这个这个模型.py
import sys
sys.path.append("../../config")
from basic_config import AGE
print(AGE)
这是 docker 文件
FROM python:3.8
WORKDIR /app
COPY . .
ARG env_type=dev
RUN pip install -r requirements.txt
CMD ["python", "src/module/model1/model.py"]
我在执行 Python 脚本之前将工作目录更改为模块的目录并且它可以工作。这是更新的 Dockerfile
FROM python:3.8
WORKDIR /app
COPY . .
ARG env_type=dev
RUN pip install -r requirements.txt
WORKDIR /app/src/module/model1
CMD ["python", "model.py"]