激活的VENV仍然使用系统pip和系统python?怎么了?

时间:2012-07-31 07:19:36

标签: python virtualenv pip

当我激活venv时,which pip会返回/usr/local/bin/pip而不是path/to/my/apps/venv/bin/pop。那是为什么?

我倾向于rm- rf /usr/local/bin/pip中的python --version并重新安装,但由于这是一个生产服务器,我不想猜太多: - )

我担心的是(在usr / local / bin中):

  • easy_install的
  • 的easy_install-2.6
  • PIP
  • PIP-2.6
  • 的virtualenv
  • 的virtualenv-2.6

which python会返回2.6.6而/usr/bin/python会返回venv,即使{{1}}已激活了吗?

运行Debian Squeeze

2 个答案:

答案 0 :(得分:1)

检查您的virtualenv是否有local目录。如果venv/local存在,它是否包含pipeasy_install?如果是这样,您可以尝试通过编辑venv/bin/activate并将venv/local/bin添加到您的路径中来解决此问题,就像venv/bin正在被添加前一样。

类似的东西:

_OLD_VIRTUAL_PATH="$PATH"
PATH="$VIRTUAL_ENV/bin:$PATH"
PATH="$VIRTUAL_ENV/local/bin:$PATH"  # my new line
export PATH

我遇到了类似于我所描述的问题,不幸的是我还没有将它运行到地面。另见:Why do distribute and pip install to my virtualenv's ./local/bin?

答案 1 :(得分:0)

你使用的是什么外壳?您使用什么特定命令来激活virtualenv?

在我的情况下(也使用挤压)我正在使用bash,如果我运行“source bin / activate”,那么我路径中的所有内容(pip,python等)都是正确的。