As a developer who runs many Python apps with Systemd for years, I can say that 
using virtual environments was the only standard way even before this behavior 
change. It add no complexity and prevents a lot of things yo go wrong.

This is the new standard for Python which Debian respects it too.

در ۲۷ فوریهٔ ۲۰۲۳ ۱۴:۱۹:۱۸ (UTC)، Thomas Ward <[email protected]> نوشت:
>If I may make an observation, how would one implement these venvs properly 
>then if something requires to be launchdd via systemd (custom services)? Or 
>specialized daemons which do not properly behave as expected in venvs?
>
>This is going to increase complexity massovely for end users who expect 
>userspace module installation to work.  Was this decision a Debian level 
>decision or an upstream Python decision?
>
>
>
>Sent from my Galaxy
>
>
>
>-------- Original message --------
>From: Victor Westerhuis <[email protected]>
>Date: 2/26/23 17:56 (GMT-05:00)
>To: [email protected], Barry Scott <[email protected]>, 
>Danial Behzadi دانیال بهزادی <[email protected]>
>Subject: Re: pip install --user broken in debian testing?
>
>Barry Scott <[email protected]> schreef op 26 februari 2023 21:36:20 CET:
>>
>>
>>> On 26 Feb 2023, at 14:06, ⁨Danial Behzadi دانیال بهزادی⁩ 
>>> <⁨[email protected]⁩> wrote:
>>>
>>> That's the new intended behavior. I you want non-debian python packages, 
>>> install them in a non-debian python via virtual environments.
>>
>>The idea is to prevent installing into /usr not preventing install in $USER I 
>>hope.
>According to the PEP it's both, and it actually makes sense. Python does not 
>distinguish between packages in system-wide and user-specific locations.
>
>Allowing non-virtualized installation of Python packages into the 
>user-specific location could therefore break Python programs and libraries 
>installed by apt/dpkg.
>
>Virtualized installations do not cause issues and are still allowed using, for 
>example, pipx or raw venvs.
>>
>>I think this is a major bug.
>>
>>Barry
>>
>>
>>
>>>
>>>
>>
>>>
>>> در ۲۶ فوریهٔ ۲۰۲۳ ۱۰:۰۴:۲۰ (UTC)، Barry Scott <[email protected]> نوشت:
>>>> I have been using the following to add useful python based commands to my 
>>>> user locally:
>>>>
>>>> $ python3 -m pip install --user <package>
>>>>
>>>> For install I get this:
>>>>
>>>> $ python3 -m pip install --user colour-text
>>>> 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.
>>>>
>>>> This look wrong to me as I am not installing into the systems 
>>>> site-packages.
>>>>
>>>> Barry
>>>>
>>
>
>
>--
>Groet, Regards,
>
>Victor Westerhuis
>

Reply via email to