--- - name: Install Python and dependencies needed by packages apt: name: - python{{ python_version }} - python{{ python_version }}-venv - libgit2-dev - name: Create dir for venvs file: path: /opt/venvs state: directory owner: "{{ app_username }}" group: "{{ app_username }}" mode: 0755 - name: Install packages needed for compiling psycopg2 apt: name: - gcc - libpq-dev - name: Create venv become_user: "{{ app_username }}" command: cmd: python{{ python_version }} -m venv {{ venv_dir }} creates: "{{ venv_dir }}" - name: Check installed packages in venv command: cmd: "{{ bin_dir }}/pip freeze" register: pip_freeze changed_when: false - name: Install Python packages into venv become_user: "{{ app_username }}" pip: executable: "{{ bin_dir }}/pip" requirements: "{{ app_dir }}/{{ pip_requirements_filename }}" - name: Install Tildes into venv as editable become_user: "{{ app_username }}" pip: executable: "{{ bin_dir }}/pip" name: "{{ app_dir }}" editable: true when: "'-e '+app_dir not in pip_freeze.stdout_lines"