【问题标题】:Force virtualenv pip to be used强制使用 virtualenv pip
【发布时间】:2016-11-05 12:10:14
【问题描述】:

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

$ 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

【问题讨论】:

  • 您确定激活(采购)100% 有效吗?打印环境变量并检查确实如此。您使用的是哪个外壳(我假设是 BASH)?可能是您被拒绝设置(某些)环境变量吗?
  • GNOME 终端中的常规 Bash 4.3.46(1) 版本。当我activate virtualenv 时,它出现在我的env 输出中:VIRTUAL_ENV=/tmp/a

标签: python python-2.7 ubuntu pip virtualenv


【解决方案1】:

你试过打电话给$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 之外

【讨论】:

猜你喜欢
  • 2013-06-13
  • 2014-06-17
  • 2014-02-01
  • 2016-02-29
  • 2017-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-05
相关资源
最近更新 更多