virtualenv pip 不升级

virtualenv pip does not upgrade

我的系统 pip 安装在 /opt/.../site-packages 中。它是版本 1.5.6。在一个新的虚拟环境中,我 运行 pip install -U pip。我看到了:

...Downloading pip-18.0-py2.py3-none-any.whl (1.3MB): 1.3MB downloaded
Installing collected packages: pip
  Found existing installation: pip 1.5.6
Not uninstalling pip at /opt/site-packages, outside environment /home/venv
Successfully installed pip
Cleaning up...
 Removing temporary dir /home/venv/build...

但是pip -V现在还是说pip 1.5.6 from /opt/.../site-packages

pippip2 都出现在 venv/bin 目录中显示相同。 which pip 指向 venv/bin 路径中的 pip,因此 pip bin 似乎永远不会更新。如何在我的虚拟环境中使用我刚刚安装的新 pip?

似乎 virtualenv 阻止您访问虚拟环境主目录之外的任何模块。如果你想升级你的系统 pip,请从虚拟环境之外进行。无论如何,升级 pip 时最好不要调用二进制文件本身。在你的 virtualenv 中试试这个:

 python -m pip install --upgrade pip

解决方案是 (virtualenv):easy_install -U pip

问题是当您创建虚拟环境时,它会使用与该版本捆绑在一起的包。如果安装新版本的 virtualenv,则需要重新创建环境才能使用新的软件包。

其他替代方法是在虚拟环境中手动升级软件包。