9

当我不在 virtualenv 中时,如何防止意外调用 pip?

我编写了以下脚本调用pip并将其添加到我的~/bin(在我的 pip 之前$PATH):

# This script makes sure I don't accidentally install pip without virtualenv
# This script requires $PIP to be set to the absolute path of pip to execute pip
# if $PIP is not set, it will write a message
if [ -z "$PIP" ]; then
   echo "you are not in a virtual env"
   echo "use virtual env or"
   # propose the second item in $PATH
   echo "  export PIP="`type -ap pip|sed -n 2p`
   echo "to cleanup use"
   echo "  unset PIP"
else
    # execute pip
    exec $PIP "$@"
fi

有没有更好的办法?

4

2 回答 2

9
export PIP_REQUIRE_VIRTUALENV=true
于 2013-10-09T16:18:16.430 回答
7

我建议将其放入您的~/.bashrc文件中:

export PIP_REQUIRE_VIRTUALENV=true

并且您还可以将以下函数添加到您的函数中~/.bashrc,如果您愿意,您可以在虚拟环境之外显式调用 pip:

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

现在你仍然可以使用你的全局 pip 版本来做一些事情,比如升级 virtualenv:

gpip install --upgrade pip virtualenv
于 2015-07-18T13:51:34.467 回答