Python 如果您运行";sudo pip安装——用户<;包装名称>&引用;?
如果使用sudo运行pip,--user标志是否起作用,如中所示: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安装--用户
软件包将安装在哪里,其权限是什么?来自
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目录中。