docker python custom module not found

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”.

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

  • CLion in docker container not finding clang after install
  • How to import mysql database using dokku
  • How can I make sure to always connect to the same docker container?
  • docker-machine commands from C#
  • Is Docker Swarm using multiple cores on same machine
  • Why is Titan throwing java.lang.IllegalArgumentException?
  • from utils import math.py, logger.py
    

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

    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
      • report
      • utils

    Any suggestions?

  • Lumen does not read env from system during request
  • Docker container can only access internet with --net=host
  • Rails Project on Docker
  • supervisor curl command failing with exit 56 error
  • Ansible: 'item' is undefined
  • Can I dockerize Activex exe which has GUI?
  • One Solution collect form web for “docker python custom module not found”

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

    • file /test_project/utils/utils.py
    • directory /test_project/utils/utils/ that contains __init__.py.

    It looks like you have this?

    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 will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.