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

  • Load balancing docker swarm using Ha Proxy
  • Giving a docker container a routable ip address
  • ecs-cli up command - attaching own instance profile
  • io.rancher.lb_service.target not working
  • Getting a “can't stat” error on build when trying to build a docker container within a Jenkins pipeline, but why?
  • Docker - Share environment variables with referenced volume containers
  • 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?

  • WSO2 loss APIs after changes in docker container
  • Containers network error when use docker with live-restore
  • Docker and Nginx proxy_pass between containers
  • Docker Toolbox Mac command line and Kitematics fails
  • Tensorboard Site cannot be found
  • pytest: environment variable to specify pytest.ini location
  • 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.