Skip to content

Instantly share code, notes, and snippets.

@gamesguru
Created January 13, 2026 04:34
Show Gist options
  • Select an option

  • Save gamesguru/3ab72bafd805784f718017507f9ecf4e to your computer and use it in GitHub Desktop.

Select an option

Save gamesguru/3ab72bafd805784f718017507f9ecf4e to your computer and use it in GitHub Desktop.
Install Python at user level in recent version of macOS and Linux

The trick

mkdir -p ~/.config/pip
vim ~/.config/pip/pip.conf

(Precise location may vary depending on operating system.)

Add the following lines:

[global]
break-system-packages = true
user = true

NOTE: The break-system-packages is scary but necessary for it to take the user flag. Be careful. Don't use sudo pip.

No more annoying message

Congrats, no more having to deal with this message, system package limits, or obligatory virtual environments:

$ pip install argcomplete
error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try 'pacman -S
    python-xyz', where xyz is the package you are trying to
    install.
    
    If you wish to install a non-Arch-packaged Python package,
    create a virtual environment using 'python -m venv path/to/venv'.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip.
    
    If you wish to install a non-Arch packaged Python application,
    it may be easiest to use 'pipx install xyz', which will manage a
    virtual environment for you. Make sure you have python-pipx
    installed via pacman.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment