python sys.path ModuleNotFoundError:在 Docker 容器中导入时没有名为“file_name”的模块

问题描述 投票:0回答:1

我正在尝试运行 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 python-3.x docker containers sys.path
1个回答
0
投票

我在执行 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"]
© www.soinside.com 2019 - 2024. All rights reserved.