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在某些情况下是必要的,例如需要在系统范围内安装包以供所有用户使用时。但要小心使用,以避免对系统造成不必要的影响。

浙公网安备 33010602011771号