Python 如果您运行";sudo pip安装——用户<;包装名称>&引用;?

Python 如果您运行";sudo pip安装——用户<;包装名称>&引用;?,python,ubuntu,pip,Python,Ubuntu,Pip,如果使用sudo运行pip,--user标志是否起作用,如中所示: sudo-pip安装--用户 软件包将安装在哪里,其权限是什么?来自man 1 pip install: --user安装到平台的Python用户安装目录。通常是~/.local/,或Windows上的%APPDATA%Python。(有关详细信息,请参阅site.USER_BASE的Python文档。) 其中~表示有效用户的主目录 如果您使用sudo(将有效用户设置为root用户)运行该软件包,则该软件包将安装在root用户的

如果使用sudo运行pip,--user标志是否起作用,如中所示:

sudo-pip安装--用户


软件包将安装在哪里,其权限是什么?

来自
man 1 pip install

--user安装到平台的Python用户安装目录。通常是~/.local/,或Windows上的%APPDATA%Python。(有关详细信息,请参阅site.USER_BASE的Python文档。)

其中
~
表示有效用户的主目录


如果您使用
sudo
(将有效用户设置为root用户)运行该软件包,则该软件包将安装在root用户的主目录中,在大多数发行版中,该目录相当于
/root/
,使最终安装路径
/root/.local/
来自
man 1 pip install

--user安装到平台的Python用户安装目录。通常是~/.local/,或Windows上的%APPDATA%Python。(有关详细信息,请参阅site.USER_BASE的Python文档。)

其中
~
表示有效用户的主目录


如果您使用
sudo
(将有效用户设置为root用户)运行它,该软件包将安装在root用户的主目录中,在大多数发行版上相当于
/root/
,使最终安装路径
/root/.local/

我看到了这一点,但我仍然不清楚如果你用sudo运行命令,~会在哪里。用sudo运行它会改变~?的含义吗?所以我有点怀疑,并决定尝试一下,但是它没有安装到根用户主目录,而是安装到了我的主目录。在安装新软件包之前和之后,我都使用了pip-show验证了这一点,使用
sudo-pip-install--user
我不认为使用sudo会改变~。您还可以通过运行sudo echo~来验证~未被更改。关于
sudo echo~
示例:
~
只是一个shell变量,它被替换为当前控制用户的主目录的路径。在实际命令运行之前,它被shell替换为home dir的完整路径,因此正在执行的完整命令实际上是(例如用户名):
sudo echo/home/alex
。如果希望看到
/root
实际上是主目录,请尝试运行:
su-c“echo~”
。这将启动一个以root用户作为控制用户的新shell,并且不会使用当前shell替换
~
。它会按预期打印
/root
。另外,不要使用
pip show
,而是以root用户身份再次安装包,并检查
/root/.local/lib/python*/
的内容,您很可能会在那里找到包。很有趣!感谢您提供有关~如何工作的信息。但是,我检查了一下,安装后,/root/.local目录不存在,但安装前,包不存在于我的user.local目录中,安装后,包存在于我的user.local目录中。我看到了这一点,但如果使用sudo运行命令,我仍然不清楚~将位于何处。用sudo运行它会改变~?的含义吗?所以我有点怀疑,并决定尝试一下,但是它没有安装到根用户主目录,而是安装到了我的主目录。在安装新软件包之前和之后,我都使用了pip-show验证了这一点,使用
sudo-pip-install--user
我不认为使用sudo会改变~。您还可以通过运行sudo echo~来验证~未被更改。关于
sudo echo~
示例:
~
只是一个shell变量,它被替换为当前控制用户的主目录的路径。在实际命令运行之前,它被shell替换为home dir的完整路径,因此正在执行的完整命令实际上是(例如用户名):
sudo echo/home/alex
。如果希望看到
/root
实际上是主目录,请尝试运行:
su-c“echo~”
。这将启动一个以root用户作为控制用户的新shell,并且不会使用当前shell替换
~
。它会按预期打印
/root
。另外,不要使用
pip show
,而是以root用户身份再次安装包,并检查
/root/.local/lib/python*/
的内容,您很可能会在那里找到包。很有趣!感谢您提供有关~如何工作的信息。但是,我检查了,并且在安装后,/root/.local目录不存在,但在安装之前,包不存在于我的user.local目录中,在安装之后,包位于我的user.local目录中。