pipenv with docker compose in PyCharm

Dec. 6, 2022, 4:33 a.m.

At the moment of page publishing, PyCharm does not support pipenv with docker (issue: https://youtrack.jetbrains.com/issue/PY-36414). What is the problem?

As you know, Pipenv install requirements in different paths like /home/vivazzi/.local/share/virtualenvs/vivivys-pxi3oUGW/bin/python, where vivivys-pxi3oUG path generate differently in devending different factors. In other hand, Pycharm requires to specify concrete path to interpreter:

Note in this window we can not see generated path to interpreter, so in next window (click by ellipsis) we do not know what we should input:

If you input path to global interpreter (something like: /usr/bin/python or /usr/local/bin/python), you can create access to remote interpreter but your app has virtual environment, so your web app will can not find packages, for example:

Traceback (most recent call last):
  File "/home/vivazzi/projects/other/vivivys/manage.py", line 8, in <module>
    from django.core.management import execute_from_command_line
ModuleNotFoundError: No module named 'django'

There are some ways to resolve this problem. In your docker-compose.yml you can:

  1. Use --system parameter: pip install --system
  2. Set the virtual environment to the root of the project to get the exact immutable path to the virtual environment.

In this article I will show second variant.

Create pipenv vitual environment in app folder

Pipenv allow install virtual environment to app folder if there is .venv folder in app folder, so you can know path to python. It will be like /path_to_your_project/.venv/bin/python.

Let's see the example! Look Dockerfile with next code:

FROM python:3.11-slim


RUN pip install pipenv


COPY Pipfile.lock .

COPY . .

Using PIPENV_VENV_IN_PROJECT=1 in RUN PIPENV_VENV_IN_PROJECT=1 pipenv sync command allow pipenv to install the virtual environment at the root of the project i.e. /app/.venv/. Accordingly, the path to the interpreter will be:


This is enough to use Pycharm for running your app and debug! Repeat the steps in the screenshots at the beginning of the article and enter this path to python - Pycharm should see the environment:

Although Pycharm swears that it allegedly did not find the path, it will find it if you click "Create".

But I want to show one feature of the work of PyCharm that due to it maybe can not run app though pycharm.

dockerfile and docker-compose.yml in remote interpreter setup in Pycharm

Let's create docker-compose.yml:

version: '3.8'

            context: .
            dockerfile: Dockerfile
        command: pipenv run python manage.py runserver
        image: vivazzi/vivivys
        restart: unless-stopped
            - .:/code
            - ""
            - db

        image: postgres
        hostname: postgres
            - "7777:5432"
            - ./data/db:/var/lib/postgresql/data
        restart: unless-stopped

Note if you use ENTRYPOINT ["pipenv", "run","python","manage.py","runserver", ""] in Dockerfile instead of command: pipenv run python manage.py runserver in docker-compose.yml, then PyCharm can not run your app (although if you run docker compose up in terminal you get running app normally, and due to it you can feel confuse). PyCharm will try run your app something like:

/app/.venv/bin/python /opt/project/manage.py runserver pipenv run python manage.py runserver

As you see this is wrong command. Or maybe pipenv will create virtual environment in root folder instead of using generated virtual environment in .venv folder, so app lost path to installed packages.

In many articles by docker has warning that you must has ENTRYPOINT or CMD command to run your app. But if you use docker compose, you must refuse this commands in docker files and add command pipenv run python manage.py runserver to docker-compose.yml. Then you will can use PyCharm for your development.

Rate this article

0 from 5 (total 0 ratings)

You can send feedback, suggestions or comments on this article using this form:

Fields marked by star ( * ) is required.

Thank you for yor feedback!

After clicking the "Send" button, your message will be delivered to me on the mail.

Author of Article

Artem Maltsev

Web-developer, having the knowlenge of programming language - Python, framework - Django, content management system - Django CMS, platform of e-commerce site - Django Shop and many other applications, using this technologies.

The right to use content on this page https://vivazzi.pro/it/pipenv-with-docker-compose-in-pycharm/:

Permission is granted to copy an content with its author and reference to the original without using the parameter rel="nofollow" in tag <a>. Usage:

Author of Article: Artem Maltsev
Link to article: <a href="https://vivazzi.pro/it/pipenv-with-docker-compose-in-pycharm/">https://vivazzi.pro/it/pipenv-with-docker-compose-in-pycharm/</a>

More: Terms of site usage

Comments: 0

You can leave a comment as an unregistered user.

But if you sing up, you can:

  • receive notifications
  • view your comments
  • be able to use all the functions of the developed services

To comment in one's own name you should log in or sign up on Vuspace website


There is no search on this site, so I offer to use usual search engine, for example, Google, adding "vivazzi" after your request.

Try it

Select currency for displaying monetary values