【问题标题】:How to prevent pip install without virtualenv?如何防止没有 virtualenv 的 pip 安装?
【发布时间】:2015-02-09 05:26:35
【问题描述】:

我真的很讨厌运行make 之类的东西,然后因为我忘记激活我的 virtualenv 而对 pip 安装大量软件包感到惊讶。

有什么方法可以强制 pip 提示/警告我我不在 some virtualenv 中?

【问题讨论】:

  • 在全球范围内删除你的点子?
  • ~/.virtualenvrc 怎么样?添加源~/.bashrc;来源 ~/python-projects/virtualenv/activate
  • @CodeGroover,我的意思是我想防止大量包意外污染我的全球环境
  • @Mikhail 重用例如bash 包装器

标签: virtualenv pip


【解决方案1】:

取自http://docs.python-guide.org/en/latest/dev/pip-virtualenv/

需要设置环境变量PIP_REQUIRE_VIRTUALENV

最佳做法是将其放在您的自动启动文件中(.bash_profile 或类似文件)

export PIP_REQUIRE_VIRTUALENV=true

要全局安装软件包,您可以运行PIP_REQUIRE_VIRTUALENV="" pip ... 或创建命令gpip,也在自动启动文件中:

gpip() {
    PIP_REQUIRE_VIRTUALENV="" pip "$@"
}

【讨论】:

    【解决方案2】:

    请注意,来自 Python 3.6 的 pip 版本 20.2.3 需要 PIP_REQUIRE_VIRTUALENV=false 而不是 PIP_REQUIRE_VIRTUALENV="" 来安装全局依赖项。

    【讨论】:

      【解决方案3】:

      如果您养成了从不事先输入sudo 并使用sudo !! 跟进关键命令的习惯,那么您可以执行此脚本以使用pipdo !! 跟进受限pip 命令

      --user 用于不破坏您的全局安装(这也是我们使用 PIP_REQUIRE_VIRTUALENV What is the purpose "pip install --user ..."? 的原因

      更多解释为什么你可能想在没有 virtualenv 的情况下安装,但你仍然可能想保护自己不被安装到你的系统 python 中。 https://github.com/zchee/deoplete-jedi/wiki/Setting-up-Python-for-Neovim#simple-setup

      # don't let pip work without using virtualenvs
      export PIP_REQUIRE_VIRTUALENV=true
      # allow to overcome the above with pipdo !!
      function pipdo {
          case "$@" in
            *install*--user*)
              PIP_REQUIRE_VIRTUALENV=false $@
              ;;
            *install*)
              echo 'Remember to `pip install --user`'
              ;;
            *)
              PIP_REQUIRE_VIRTUALENV=false $@
              ;;
          esac
      }
      

      【讨论】:

        猜你喜欢
        • 2015-07-29
        • 1970-01-01
        • 2021-08-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-15
        • 2014-02-08
        相关资源
        最近更新 更多