强制使用 virtualenv pip

Force virtualenv pip to be used

运行 Ubuntu 16.10 与 Python 2.7.12+(默认)和 virtualenv 15.0.3 (sudo -H pip install virtualenv)。我做错了什么?

$ virtualenv a && . "$_"/bin/activate && pip --version
New python executable in /tmp/a/bin/python
Installing setuptools, pip, wheel...done.
pip 9.0.0 from /usr/local/lib/python2.7/dist-packages (python 2.7)
$ /tmp/a/bin/pip --version
pip 9.0.0 from /usr/local/lib/python2.7/dist-packages (python 2.7)
$ /tmp/a/bin/python -c 'from pip import __file__; print __file__'
/usr/local/lib/python2.7/dist-packages/pip/__init__.pyc

你试过打电话给 $venv/bin/python $venv/lib/site-packages/pip/__main__.py 吗?那应该有用。

要找出调用错误 pip 的原因,您应该查看:

  • $PATH,什么顺序,which pipwhich python也有帮助
  • sys.path,这是什么顺序,/usr/local/lib/是否出现在venv
  • 之前
  • $PYTHONPATH,影响 sys.path
  • venv 中可能的符号链接,它可能指向 venv 之外