【问题标题】:sudo pip: why, why not and alternatives [duplicate]sudo pip:为什么,为什么不和替代方案[重复]
【发布时间】:2018-04-26 08:20:30
【问题描述】:

四处走动我读了很多关于sudo pip 是一个非常糟糕的习惯/解决方案的信息。人们给出的一些理由是:

  • 它可以运行恶意代码。
  • 它会破坏权限结构。
  • Sudo 用于安装“系统范围”的软件包。
  • 是撒旦!1!!一个

我发现的另一种方法是运行pip--user(例如pip install --user package)。我看到 Debian 中的 python 工作方式有点不同(我有 Stretch),主要是因为使用了路径(--user 是 Debian 中的标准,如果省略,顺便说一句)。总之,我发现了很多不一致的地方。

理所当然地将sudopip 一起使用是错误的,谁能解释一下为什么,最重要的是,什么时候是错误的?我遇到的主要问题都是关于权限的,所以我猜sudo“只是”破坏了所有权。

除了--user或者virtualenv还有其他解决方案吗?

【问题讨论】:

  • @Rawing 如果我不得不猜测的话,因为这个问题之前已经被问过并回答了很多次,而快速的谷歌搜索就会发现这一点。
  • 感谢您的编辑!无论如何,我已经阅读了标记为重复的帖子,它们正是促使我提出这个问题的确切原因:在一个帖子中,答案是“因为所有权”,在另一个帖子中是“因为你从互联网运行代码”,另一个说“因为范围可见性”...
  • @vaultah 谢谢,看来我的 google-fu 让我失望了……我无法通过快速搜索找到任何关于该主题的特别有用的信息。

标签: python pip


【解决方案1】:

除非您想要全局安装二进制文件、服务或依赖项,否则您不会想要使用sudo pip。正如您所猜测的那样,它会全局安装您的依赖项,这可能会导致开发时出现不一致。

现在更传统的做法是使用virtualenv 来安装您的依赖项。这样一来,您对安装所做的任何事情都对 Python 的特定 virtualenv 实例是本地的。

【讨论】:

  • 试图编辑以纠正拼写,但我必须编辑超过 6 个字符。您的virtualenv 链接拼写错误。另外,值得补充的是,要使用虚拟环境,只需 source /path/to/my/venv/bin/activate,然后您就可以像往常一样使用 pip 安装大多数软件包。
  • 位置正确,字母不对……你写的virutalenv应该是virtualenv
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-15
  • 2015-10-01
  • 2012-11-26
  • 1970-01-01
  • 1970-01-01
  • 2020-08-10
  • 2011-02-23
相关资源
最近更新 更多