diff --git a/roles/wsgi_website/tasks/main.yml b/roles/wsgi_website/tasks/main.yml index c74b3ce06c3ab61098b24ddb84e0988432745dcb..ab2256d2547132ba2a3e7615c0d5f77bdd50db3f 100644 --- a/roles/wsgi_website/tasks/main.yml +++ b/roles/wsgi_website/tasks/main.yml @@ -113,8 +113,24 @@ group: "{{ user }}" mode: 02750 -# setuptools is excluded on Stretch, because it would pull-in the -# pkg-resources package that then messes with pip freeze etc. +# @TODO: Get rid of this if possible in Debian Buster. +# Do not install setuptools when creating the virtual environment - +# otherwise it will also install Debian-specific pkg-resources +# package. The pkg-resources package can be removed, but this breaks +# the package downloading via pip. +# +# Install setuptools later on via separate pip invocation. +# +# The pkg-resources package is also annoying because it shows-up in +# the output of the pip freeze command, and also interferes with the +# virtual environment management using pip-tools. +# +# For more details, see: +# +# - https://github.com/pypa/pip/issues/4022 +# - https://bugs.launchpad.net/ubuntu/+source/python-pip/+bug/1635463 +# - https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=871790 + - name: Create Python virtual environment command: '/usr/bin/virtualenv --no-setuptools --python "{{ python_interpreter }}" --prompt "({{ fqdn }})" "{{ home }}/virtualenv"' args: @@ -127,20 +143,16 @@ # created (thanks to 'creates' parameter). - skip_ansible_lint -- name: Install latest pip and setuptools in virtual environment +# @TODO: Park of the pkg-resources described above. +- name: Install setuptools in virtual environment pip: name: - - "pip>=18.0.0,<19.0.0" - - "setuptools>=40.0.0,<41.0.0" + - "setuptools" virtualenv: "{{ home }}/virtualenv" become: true become_user: "{{ admin }}" -# Workaround for: -# -# - https://github.com/pypa/pip/issues/4022 -# - https://bugs.launchpad.net/ubuntu/+source/python-pip/+bug/1635463 -# - https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=871790 +# @TODO: Park of the pkg-resources described above. - name: Remove the pkg-resources package from virtual environment (see comments above for details) pip: name: pkg-resources