在 Docker 中导入

Import-through in Docker

我有主 workbench 文件夹(Docker 文件中的 WORKDIR),其中包含文件夹 initialize 和文件 max_init.py。问题是当我 运行 图像时,它无法导入该模块:

  File "app.py", line 1, in <module>
    from initialize.max_init import *
ImportError: No module named initialize.max_init

Docker文件:

FROM ubuntu:latest
RUN apt-get update -y && \
    apt-get install -y python-pip python-dev build-essential
COPY . /workbench
WORKDIR /workbench
RUN pip install -r requirements.txt
EXPOSE 8888
EXPOSE 5000
ENTRYPOINT ["python"]
CMD ["app.py"]

我觉得是我经验不足Docker,但我自己找不到解决办法

编辑:层次结构:

workbench    
    |-- app.py
        |-- initialize
            |-- max_init.py

您是否记得在 initialize 模块文件夹中写了一个 __init__.py 文件?它是否正确载入了您的 max_init.py 文件?如果您不熟悉该约定,这里有很多解释。

  1. 官方:https://docs.python.org/3/tutorial/modules.html#packages

  2. 我个人觉得很容易掌握的 Flask 解释器:http://flask.pocoo.org/docs/1.0/patterns/packages/

编辑:我从更新中看到这确实是问题所在。如果你修复它应该没问题...我什至不认为你需要重建 docker 图像但我可能会弄错。