“pip3 freeze”和“sudo pip3 freeze”不同

“pip3 freeze”和“sudo pip3 freeze”不同

在我的系統(Raspbian Buster、raspberry pi CM4)上,當我執行「sudo python3」時,使用「pip3 install」安裝的軟體包不可用:

$ 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'

「pip3 freeze」和「sudo pip3 freeze」的輸出也有差別:

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

兩者都從相同的可執行檔(“/usr/bin/pip3”和“/usr/bin/python3”)運行,那麼為什麼這兩個用戶的環境不同呢?

有沒有辦法使用“sudo python3”並且仍然在用戶環境中安裝軟體包?

ps:我知道 virtualenv,但如果可能的話我不想使用它

答案1

比較輸出

python3 -m site

sudo python3 -m site

您可以使用命令找到模組檔案的絕對路徑

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

相關內容