我是docker的新手并尝试将一个简单的应用程序移动到docker。 我可以使用“pip install”导入Python标准模块。但是,我有一些我想使用的自定义python实用程序文件。 这些文件位于单独的包“utils”中。
在我的主python文件中:test.py
,我正在做
from utils import math.py, logger.py
这个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"]
我的目录结构:
test_project
report
utils
有什么建议吗?
答案 0 :(得分:5)
您将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