【问题标题】:pip listing global packages in active virtualenvpip 在活动的 virtualenv 中列出全局包
【发布时间】:2014-01-09 10:04:10
【问题描述】:

在将 pip 从 1.4.x 升级到 1.5 后,pip freeze 会输出我全局安装的(系统)包的列表,而不是安装在我的 virtualenv 中的包。我已经尝试再次降级到 1.4,但这并不能解决我的问题。它有点类似于this question,只是它已经按预期工作了几个月。有没有办法调试和/或修复这个?

似乎 virtualenv 根本没有效果。在其中安装软件包也会在全局范围内安装它们。

【问题讨论】:

  • which pip 的输出是什么?它是全局 pip 还是 virtualenv 本地?
  • @alko /usr/local/bin/pip
  • @alko 所以我想这是我的问题...
  • 我知道这个问题是专门关于 virtualenv 但如果你使用 venv (python3 -m venv myVirtualEnvironment) 这个问题不存在。对于大多数人来说,我怀疑有很大的不同。

标签: python virtualenv pip


【解决方案1】:

即使您已正确安装,但全局站点包对您的virtualenv 可见,pip 仍然会列出所有内容,除非您使用 pip list --local discussed here

【讨论】:

  • 这似乎不是真的。我认为只有使用--system-site-packages 创建virtualenv 才是正确的??我最终从头开始删除并重新创建了 virtualenv。
  • 根据pip documenentation,它正确的,并且可以正常工作。当然,只有在您使用--system-site-packages 创建了virtualenv 时才是正确的。这就是我的回答中所指的“但全局站点包可见”。 “但是”与默认的virtualenv 创建(由virtualenvwrapper)形成对比,它与全局站点包隔离。
【解决方案2】:

我在全局安装包而不是在激活的 virtualenv 中安装包时遇到问题。查看pip installing in global site-packages instead of virtualenv 的问题(和答案)。

基本上,解决方案包括修改 virtualenv 中 pip 脚本的 shebang,因为它们指向错误的 python 安装。

【讨论】:

    猜你喜欢
    • 2014-01-23
    • 1970-01-01
    • 1970-01-01
    • 2014-01-23
    • 2018-05-21
    • 2014-01-24
    • 2010-11-25
    • 1970-01-01
    • 2012-09-15
    相关资源
    最近更新 更多