'pip3 congelar' e 'sudo pip3 congelar' são diferentes

'pip3 congelar' e 'sudo pip3 congelar' são diferentes

No meu sistema (Raspbian Buster, raspberry pi CM4), os pacotes instalados com 'pip3 install' não estão disponíveis quando executo 'sudo python3':

$ pip3 freeze |grep numpy
numpy==1.21.5
$ sudo python3
Python 3.7.3 (default, Jan 22 2021, 20:04:44)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'numpy'

Há também uma diferença na saída de 'pip3 freeze' e 'sudo pip3 freeze':

$ pip3 freeze |grep numpy
numpy==1.21.5
$ sudo pip3 freeze |grep numpy
<no output>

Ambos são executados a partir do mesmo executável ('/usr/bin/pip3' e '/usr/bin/python3'), então como é que os ambientes desses 2 usuários são diferentes?

Existe uma maneira de usar 'sudo python3' e ainda instalar os pacotes com o ambiente do usuário?

ps: Eu conheço o virtualenv, mas prefiro não usá-lo se possível

Responder1

comparar a saída de

python3 -m site

e

sudo python3 -m site

você pode encontrar um caminho absoluto para os arquivos do módulo com um comando

python -c "import numpy as _; print(_.__path__)"

informação relacionada