Python程序在docker中运行,未找到自定义模块

时间:2019-11-27
本文章向大家介绍Python程序在docker中运行,未找到自定义模块,主要包括Python程序在docker中运行,未找到自定义模块使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

错误

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找对应的文件

参考

https://codeday.me/bug/20190828/1754108.html

原文地址:https://www.cnblogs.com/clod777/p/11944680.html