找不到docker python自定义模块

Dad*_*adu 7 python docker dockerfile

我是Docker的新手,正在尝试将一个简单的应用程序移至Docker。我可以使用“ pip install”导入Python标准模块。但是,我有一些要使用的自定义python实用程序文件。这些文件位于单独的软件包“ utils”中。

在我的主要python文件:中test.py,我正在做

from utils import math.py, logger.py
Run Code Online (Sandbox Code Playgroud)

在docker外部可以正常工作,但是通过docker运行时会出现错误"ImportError: No module named utils"

我的Dockerfile代码:

FROM python:2.7.11
ADD ./ test_project/
WORKDIR test_project
ENV PATH=$PATH:/test_project/utils
ENV PYTHONPATH /test_project/utils

CMD [ "python", "report/test.py"]
Run Code Online (Sandbox Code Playgroud)

我的目录结构:

  • test_project
    • report
    • utils

有什么建议么?

Dan*_*owe 8

您设置PYTHONPATH/test_project/utils。尝试解析模块时utils,它正在寻找以下之一:

  • 文件 /test_project/utils/utils.py
  • /test_project/utils/utils/包含的目录__init__.py

看起来您有这个吗?

utils/math.py
utils/logger.py
Run Code Online (Sandbox Code Playgroud)

我想知道你真正想做的是

# different path...
ENV PYTHONPATH /test_project

from utils import math
from utils import logger
Run Code Online (Sandbox Code Playgroud)