Hmm – to some extent this is simply unavoidable – newbies will get confused, and of course, more so when things change.
Look at at the number of REALLY basic questions based on misunderstandings that we get over and over again on “help” fora.
But I think this could also be helped by better, ironically less informative, help message, with “how to override” right at the top:
“”"
This environment python environment is externally managed.
If the package is not available in your system package manager, pass the --force flag:
python -m pip install --force package_name
‘’'"
Though from the question linked, it looks like that’s a linux-specific error message, so up to them what they do, and conda could do something different.
(and they should put “THIS IS NOT PYTHONS FAULT” up front
[Another lesson – requiring virtual environments is going cause a lot of questions!)
NOTE: Is there a force flag? I can’t seem to find the documentation for EXTERNALLY_MANAGED.
As pointed out–the big difference between LInux distros and conda is that conda provides its own environment system. But even so, I think pip should do as little as possible that conda-specific – it should just get out of the way and let the conda folks figure it out.
HMM – I just realized that Linux distros and conda might want to do exactly the opposite with a flag:
Linux distros want to enforce the use of a virtual environment
conda wants to prevent (discourage) the use of virtual environments – yet another flag? A
ALREADY_IN_AN_ENVIRNOMENT ?
sigh.