[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: pip install --user broken in debian testing?





On 26 Feb 2023, at 20:42, Victor Westerhuis <victor@westerhu.is> wrote:

Barry Scott <barry@barrys-emacs.org> schreef op 26 februari 2023 21:36:20 CET:


On 26 Feb 2023, at 14:06, ⁨Danial Behzadi دانیال بهزادی⁩ <⁨dani.behzi@ubuntu.com⁩> 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. 

On Fedora they use the -s option for all system apps that use python to prevent breakage from user installed packages.

I have been living in that happy world where pip install --user was safe to use.


Virtualized installations do not cause issues and are still allowed using, for example, pipx or raw venvs. 

I am aware of that, but don't reach for venv for simple stuff.
Clearly I'm going to have to figure out how to do this for my use case now.

Barry


I think this is a major bug.

Barry







در ۲۶ فوریهٔ ۲۰۲۳ ۱۰:۰۴:۲۰ (UTC)، Barry Scott <barry@barrys-emacs.org> نوشت:
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 to: