本文介绍了找不到docker python自定义模块的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是docker的新手,正在尝试将一个简单的应用程序移至docker.我可以使用"pip install"导入Python标准模块.但是,我有一些要使用的自定义python实用程序文件.这些文件位于单独的"utils"包中.

I am new to docker and trying to move one simple application to docker.Python standard modules I am able to import using "pip install". However, I have some custom python utility files that I would like to use.These files are in separate package "utils".

在我的主要python文件: test.py 中,我正在做

In my main python file : test.py, I am doing

from utils import math.py, logger.py

在docker外部可以正常工作,但是通过docker运行时会出现错误"ImportError:No名为utils的模块" .

This outside of docker works fine, but when running through docker gives me the error "ImportError: No module named utils".

我的Dockerfile代码:

My Dockerfile code:

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"]


我的目录结构:


My directory structure:

  • test_project
    • 报告
    • 实用程序

    有什么建议吗?

    推荐答案

    您将 PYTHONPATH 设置为/test_project/utils .尝试解析模块 utils 时,它正在寻找以下其中一项:

    You set PYTHONPATH to /test_project/utils. When trying resolve the module utils, it is looking for one of:

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

    看起来你有这个吗?

    utils/math.py
    utils/logger.py
    

    我想知道您真正想做的是

    I wonder if what you really mean to do is

    # different path...
    ENV PYTHONPATH /test_project
    
    from utils import math
    from utils import logger
    

    这篇关于找不到docker python自定义模块的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-25 07:38