Re: Pip installs to unexpected place

Liste des GroupesRevenir à cl python 
Sujet : Re: Pip installs to unexpected place
De : list1 (at) *nospam* tompassin.net (Thomas Passin)
Groupes : comp.lang.python
Date : 16. Apr 2025, 17:50:27
Autres entêtes
Message-ID : <mailman.14.1744823411.3008.python-list@python.org>
References : 1 2 3 4 5 6
User-Agent : Mozilla Thunderbird
On 4/15/2025 5:38 PM, rbowman via Python-list wrote:
On Tue, 15 Apr 2025 14:12:19 -0400, Thomas Passin wrote:
 
On Linux, at least, it's standard for pip to install into the user's
site-packages location if it's not invoked with admin privileges - even
without --user. Pip will emit a message saying so. Well, that used to be
true but nowadays Pip wants you to use the --break-system-packages flag
if you want to insist on installing into the system's Python install,
even if it's going to go into --user. I'm not sure if the restriction
will be in place given that the OP built his own Python version.
 Is that pip or a distro's version of pip? On Fedora I get the message
about defaulting to user. On Ubuntu I get a message to use a venv or if I
really want a global install to use something like 'pip install python3-
black'. Ubuntu's is pip 24.2, Fedor's is 24.3.1 but neither of them show
'--break-system-packages' in --help.
The behavior is specifed in
https://packaging.python.org/en/latest/specifications/externally-managed-environments/#externally-managed-environments
Exactly how pip works and what messages it emits are specified by this document, and the details depend on how the distro's packagers configure it.  For example, here is a bit of the spec:
"Before a Python-specific package installer (that is, a tool such as pip - not an external tool such as apt) installs a package into a certain Python context, it should make the following checks by default:
     Is it running outside of a virtual environment? It can determine this by whether sys.prefix == sys.base_prefix.
     Is there an EXTERNALLY-MANAGED file in the directory identified by sysconfig.get_path("stdlib", sysconfig.get_default_scheme())?
If both of these conditions are true, the installer should exit with an error message indicating that package installation into this Python interpreter’s directory are disabled outside of a virtual environment.
The installer should have a way for the user to override these rules, such as a command-line flag --break-system-packages. This option should not be enabled by default and should carry some connotation that its use is risky."

Date Sujet#  Auteur
15 Apr 25 * Re: Pip installs to unexpected place3Thomas Passin
15 Apr 25 `* Re: Pip installs to unexpected place2rbowman
16 Apr 25  `- Re: Pip installs to unexpected place1Thomas Passin

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal