pyvenv安装了错误的pip版本

时间:2015-08-30 12:29:59

标签: python pip archlinux

我正在使用pyvenv env创建virtualenv,但已安装的pip版本已过时。我可以手动更新虚拟环境中的pip,但我希望自动拥有正确的版本。

没有激活venv:

~> pip -V
pip 7.1.2 from /usr/lib/python3.4/site-packages (python 3.4)

安装venv:

~> pyvenv env
~> source env/bin/activate.fish

激活venv:

~> pip -V
pip 6.0.8 from /home/syntonym/test/env/lib/python3.4/site-packages (python 3.4)

我使用arch并拥有由pip和pacman(arch数据包管理器)管理的pip,这可能不是一个好主意。我仍然不知道pyvenv从哪里获得6.0.8版本的pip或如何解决它。用pacman重新安装没有帮助。

编辑:

ensurepip声称它已经是最新的:

~> python -m ensurepip --upgrade
Ignoring indexes: https://pypi.python.org/simple
Requirement already up-to-date: setuptools in /usr/lib/python3.4/site-packages
Requirement already up-to-date: pip in /usr/lib/python3.4/site-packages

1 个答案:

答案 0 :(得分:3)

您可以通过执行

手动升级虚拟环境中的pip
pip install -U pip

您遇到此问题,因为venv使用ensurepippip添加到新环境中:

  

除非给出--without-pip选项,否则将调用ensurepip   bootstrap pip进入虚拟环境。

Ensurepip包不会从互联网上下载或从其他任何地方获取文件,因为所有必需的组件都已包含在包中。这样做会增加安全漏洞,因此不受支持。

Ensurepip并非旨在为您提供最新的pip,而只是“a”pip。要获得最新版本,请在本文开头使用手动方式。