2017-01-24 147 views
1

我是新来的docker,并试图将一个简单的应用程序移动到docker。 我可以使用“pip install”导入Python标准模块。但是,我有一些我想使用的自定义python实用程序文件。 这些文件位于单独的软件包“utils”中。未找到docker python自定义模块

我主要的Python文件:test.py,我做

from utils import math.py, logger.py 

此泊坞窗的外面工作正常,但通过搬运工运行的时候给我的错误"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"] 

我的目录结构:

  • test_project
    • report
    • utils

有什么建议吗?

回答

2

您将PYTHONPATH设置为/test_project/utils。当试图解析模块utils,它正在寻找一个:

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

看起来你有这个?

utils/math.py 
utils/logger.py 

我不知道如果你真的是做的是

# different path... 
ENV PYTHONPATH /test_project 

from utils import math 
from utils import logger 
+0

,如果我做'进口数学进口logger'然后我的本地环境不能够解决模块。它需要'从utils import math,logger'。所以,为了在本地和docker容器上工作,我需要'从utils import main,logger'。你是否建议使用'PYTHONPATH/test_project',以便它在包含__init.py的目录'/ test_project/utils /'中查找。 ? – Dadu

+0

@Prashant我相信这是你想要做的,是的。 –

+0

如果当前没有'utils/__ init __。py',则创建它。它不必有任何内容,只需要一个空文件就行。 –