Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python sudopip安装VS pip安装--用户_Python_Pip_Sudo - Fatal编程技术网

Python sudopip安装VS pip安装--用户

Python sudopip安装VS pip安装--用户,python,pip,sudo,Python,Pip,Sudo,我不记得我在哪里读到过这篇文章,但无论是在这里的某个地方,还是在我下面的一篇教程的评论中,一个人说: “永远不要使用sudo pip安装;你可以在不知情的情况下覆盖重要内容。请改用pip安装--user!' 我看到很多关于sudo-pip-install的引用,所以这个人知道他们在说什么吗?我应该避免,或者 sudopip安装可能意味着您希望在系统范围内安装软件包。对于某些软件包,如VirtualEnvrapper,这可能很有用,但除此之外,我会避免安装系统范围的软件包,并为每个应用程序创建一个

我不记得我在哪里读到过这篇文章,但无论是在这里的某个地方,还是在我下面的一篇教程的评论中,一个人说:

“永远不要使用sudo pip安装;你可以在不知情的情况下覆盖重要内容。请改用pip安装--user!'


我看到很多关于sudo-pip-install的引用,所以这个人知道他们在说什么吗?我应该避免,或者

sudopip安装可能意味着您希望在系统范围内安装软件包。对于某些软件包,如VirtualEnvrapper,这可能很有用,但除此之外,我会避免安装系统范围的软件包,并为每个应用程序创建一个virtualenv,并将pip安装到该virtualenv(无需sudo即可完成)

在python安装中全局安装包,即为所有用户安装

$ pip install --user
安装到本地用户目录,即~/.local/lib/python——仅限您

例如:

$ sudo pip install jupyter
$ jupyter notebook
将运行jupyter,打开web浏览器,允许您使用笔记本电脑

$ pip install --user jupyter
$ jupyter notebook
在将本地目录添加到路径之前,不会执行任何操作


pypi中最近包含恶意代码。切勿使用sudo与pip一起安装。这与以root身份运行病毒相同。将本地文件夹添加到路径或使用virtualenv。

理论上,恶意软件包可以通过setup.py文件中指定的各种指令安装/读取/修改/删除其有权访问的任何文件。使用sudo安装可扩大可修改的文件/位置的数量。基本上,您允许未录制的代码根访问您的系统。实际上,当安装来自可信作者的软件包时,您不太可能被烧坏——至少不会比从发行版的软件包管理器安装软件包更容易受到攻击。也就是说,
--user
开关是可用的,应该认真考虑。我已经无数次使用sudo-pip,但从未遇到过问题,一旦你相信源代码,我就不会担心它了。相关:对于任何感兴趣的人,对于一个类似的问题有一个很好的答案@jedwards我相信jedwards对于为什么人们不建议这样做有一个正确的想法。我在一个专心致志的服务器上工作,所以系统范围应该不会有问题。话虽如此,我仍然在使用--user,希望有一个更可靠的答案。
$ pip install --user jupyter
$ jupyter notebook