错误
Traceback (most recent call last):
File "demo.py", line 13, in <module>
from test_module import math
ModuleNotFoundError: No module named 'test_module'
Dockerfile
FROM python:3.7.3
RUN pip install toml -i "https://pypi.tuna.tsinghua.edu.cn/simple/"
RUN mkdir test_module
WORKDIR test_module/
COPY . .
ENTRYPOINT ["python3", "demo.py"]
一开始我这样写Dockerfile,发现获取不了自定义的module。
解决
上面的写法python不知道自己的工作目录,需要指明python的工作目录
改进后的Dockerfile如下:
FROM python:3.7.3
RUN pip install toml -i "https://pypi.tuna.tsinghua.edu.cn/simple/"
RUN mkdir app/test_module
WORKDIR app/test_module/
########################
ENV PATH=$PATH:/app
ENV PYTHONPATH /app
#######################
COPY . .
ENTRYPOINT ["python3", "demo.py"]
注:如果PYTHONPATH设置为/app/test_module,导入模块是在/app/test_module/test_module找对应的文件