Ubuntu 22.04-pip和sudo pip的区别

转自网络

问题:

在虚拟环境下导入 requirements.txt 环境需求包时, 发现一个坑

pip -r install requirements.txt
sudo pip -r install requirements.txt

这两者安装的包所在位置不同,

前者安装在"虚拟环境"里面, 后者则安装在"全局环境"中。

pip --version
# pip 19.1.1 from /home/python/.virtualenvs/test/lib/python3.5/site-packages/pip (python 3.5)
sudo pip --version
# pip 19.1.1 from /usr/local/lib/python3.5/dist-packages/pip (python 3.5)
pip list
sudo pip list

sudo pip和pip都是用于安装和管理Python包的命令,但它们的运行方式和权限有所不同。

以下是主要区别:

1.权限:

(1)pip:

以当前用户的权限运行。默认情况下,安装的包会放在当前用户的Python环境中,

通常位于~/.local/lib/pythonX.Y/site-packages(其中X.Y是Python的版本号)。

(2)sudo pip:

以超级用户(root)的权限运行。安装的包会放在系统范围的Python环境中,

通常位于/usr/local/lib/pythonX.Y/dist-packages或类似目录。

2.影响范围:

(1)pip:

仅影响当前用户的Python环境,不需要管理员权限,可以避免破坏系统范围的Python环境。

(2)sudo pip:

影响整个系统的Python环境,需要管理员权限,可能会覆盖或修改系统范围的Python包,可能会导致系统依赖的Python包出现冲突或问题。

3.使用场景:

(1)使用pip(不带sudo)是推荐的做法,尤其是在使用虚拟环境(virtualenv)或venv时。这样可以避免权限问题和系统范围的包冲突。

(2)使用sudo pip在某些情况下是必要的,例如需要在系统范围内安装包以供所有用户使用时。但要小心使用,以避免对系统造成不必要的影响。

原文链接:https://mp.weixin.qq.com/s/54zEtScsK7Ap0Xi3bxbW6Q

posted @ 2025-08-04 10:29  peakgrin  阅读(28)  评论(0)    收藏  举报