我正在使用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
答案 0 :(得分:3)
您可以通过执行
手动升级虚拟环境中的pippip install -U pip
您遇到此问题,因为venv
使用ensurepip将pip
添加到新环境中:
除非给出--without-pip选项,否则将调用ensurepip bootstrap pip进入虚拟环境。
Ensurepip包不会从互联网上下载或从其他任何地方获取文件,因为所有必需的组件都已包含在包中。这样做会增加安全漏洞,因此不受支持。
Ensurepip并非旨在为您提供最新的pip
,而只是“a”pip
。要获得最新版本,请在本文开头使用手动方式。