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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM