Make it so pip install --user still works

Debian has enabled `EXTERNALLY-MANAGED` from PEP 668 which breaks `pip
install --user`. I think this is a terrible decision, understandable to
want to avoid modifications in `/usr/lib/python*/site-packages` but to
have that stop be installing packages in my home directory is a big
mistake in terms of usability. In any case this patch moves the
configuration of `pip.conf` to occur before any other roles are
processed, seting the override flag, even though I'm never actually
touching the real site packages.
This commit is contained in:
Kenneth Benzie 2023-03-04 11:33:11 +00:00
parent bdbb6a3f3b
commit 23f0fd7f23
4 changed files with 20 additions and 17 deletions

View File

@ -3,6 +3,7 @@
roles:
- role: sudo
when: ansible_user_id != "root"
- role: python
- role: zsh
- role: neovim
@ -27,7 +28,6 @@
- role: llvm
- role: nodejs
- role: python
- role: wsl
when: '"WSL" in ansible_kernel'

View File

@ -5,6 +5,7 @@
install_cad_apps: false
roles:
- role: python
- role: git
- role: powershell
- role: neovim
@ -21,7 +22,6 @@
- role: llvm
- role: nodejs
- role: python
- role: 1password
- role: autohotkey

View File

@ -6,20 +6,9 @@
# TODO: set repo email
- name: install pip packages
pip:
name: '{{python_pip_packages}}'
state: latest
extra_args: --user
- name: create directories
file:
state: directory
dest: '{{item}}'
with_items:
- ~/.config/ipython/profile_default
- ~/.config/pip
# Ensure that pip.conf exists before ever installing pip packages since Debian
# has not enabled `EXTERNALLY-MANAGED` from PEP 668 which breaks `pip install
# --user` unless configured otherwise.
- name: create symbolic links
file:
state: link
@ -34,3 +23,17 @@
dest: ~/.config/ipython/profile_default/ipython_config.py
- src: ~/.config/python/pip.conf
dest: ~/.config/pip/pip.conf
- name: install pip packages
pip:
name: '{{python_pip_packages}}'
state: latest
extra_args: --user
- name: create directories
file:
state: directory
dest: '{{item}}'
with_items:
- ~/.config/ipython/profile_default
- ~/.config/pip

View File

@ -1,5 +1,5 @@
---
- include_tasks: '{{ansible_os_family}}.yaml'
- include_tasks: 'unix.yaml'
- include_tasks: 'Unix.yaml'
when: ansible_os_family != "Windows"