Terminal Emulator (Posting On Python-List Prohibited)
Gordinator
gordinator at gordinator.org
Mon May 20 14:43:08 EDT 2024
On 20/05/2024 10:58, Peter J. Holzer wrote:
> On 2024-05-20 00:26:03 +0200, Roel Schroeven via Python-list wrote:
>> Skip Montanaro via Python-list schreef op 20/05/2024 om 0:08:
>>>> Modern debian (ubuntu) and fedora block users installing using pip.
>>>
>>> Even if you're telling it to install in ~/.local? I could see not allowing
>>> to run it as root.
>>
>> I assumed pip install --user would work, but no. I tried it (on Debian 12
>> (bookworm)):
>>
>>> $ pip install --user docopt
>>> error: externally-managed-environment
>>>
>>> × This environment is externally managed
>>> ╰─> To install Python packages system-wide, try apt install
>>> python3-xyz, where xyz is the package you are trying to
>>> install.
>>>
>>> If you wish to install a non-Debian-packaged Python package,
>>> create a virtual environment using python3 -m venv path/to/venv.
>>> Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
>>> sure you have python3-full installed.
>>>
>>> If you wish to install a non-Debian packaged Python application,
>>> it may be easiest to use pipx install xyz, which will manage a
>>> virtual environment for you. Make sure you have pipx installed.
>>>
>>> See /usr/share/doc/python3.11/README.venv for more information.
>>>
>>> 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.
>>
>> Exactly the same output for sudo pip install.
>
> This message (quoted in all its glory) is too long to be useful. The
> important bit is at the end:
>
>>> You can override this, at the risk of breaking your Python
>>> installation or OS, by passing --break-system-packages.
>
> (I admit I didn't see this the first time I got this message)
>
> python3 -m pip install --user --break-system-packages <packagename>
> does indeed install into ~/.local/lib/python3.XX/site-packages.
>
> This inconvenient, but otoh I have accidentally installed packages into
> ~/.local in the past, so maybe it's good to make that more explicit.
>
> hp
>
Perhaps an alias like so:
$ alias 'pip install'='pip install --user --break-system-packages'
Would work here? Someone please advise if that is a good idea.
More information about the Python-list
mailing list