Mak*_*sim 17 python pip python-venv
每当我创建一个venv时,我都会收到一条消息,要求我升级pip.我运行命令进行升级,然后在另一个venv上再次弹出.我怎样才能永久化.
信息:
You are using pip version 9.0.1, however version 18.0 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
Run Code Online (Sandbox Code Playgroud)
更新:刚收到建议阅读这个可能的重复答案:virtualenv使用升级的系统默认点
但这并不能解决我的问题.为什么?
我pip3
似乎已经是最新的:
C:\Users\mkupfer\Python-Sandbox\sibc-python-scripts>pip --version
pip 18.0 from c:\users\mkupfer\appdata\local\programs\python\python36-32\lib\sit
e-packages\pip (python 3.6)
C:\Users\mkupfer\Python-Sandbox\sibc-python-scripts>pip3 --version
pip 18.0 from c:\users\mkupfer\appdata\local\programs\python\python36-32\lib\sit
e-packages\pip (python 3.6)
C:\Users\mkupfer\Python-Sandbox\sibc-python-scripts>pip3 install --upgrade pip
Requirement already up-to-date: pip in c:\users\mkupfer\appdata\local\programs\p
ython\python36-32\lib\site-packages (18.0)
Run Code Online (Sandbox Code Playgroud)
解决方案:通过使用virtualenv
创建新的虚拟环境,我能够完全解决这个问题.不确定这是否是一个错误venv
.我将只使用未来有效的包.谢谢@James Lim的回答.
问题似乎是新的虚拟环境正在使用旧版本的pip。请注意,pip是从site-packages/virtualenv_support
目录virtualenv随附的源tarfile(或wheel)安装的。
$ ls -l /path/to/site-packages/virtualenv_support
pip-9.1-py2.py3-none-any.whl
Run Code Online (Sandbox Code Playgroud)
解决该问题的一种快速方法是确保每次创建新的virtualenv时都升级pip,如下所示:
$ virtualenv venv
$ venv/bin/pip install -U pip
Run Code Online (Sandbox Code Playgroud)
或者,请确保您具有最新版本的virtualenv。根据他们的发行说明,virtualenv==16
正在使用pip==10
。
$ pip install -U virtualenv
Run Code Online (Sandbox Code Playgroud)
最后,由于virtualenv中验看pip*.whl
中virtualenv_support
,这也将工作:
$ mv /path/to/site-packages/virtualenv_support/pip*.whl{,bak}
$ pip wheel -w /path/to/site-packages/virtualenv_support/ 'pip==18'
Run Code Online (Sandbox Code Playgroud)
所有新的virtualenvs都将使用您安装到中的pip版本virtualenv_support
。但是,这感觉很hack。
(尝试使用virtualenv==16
。这会导致所有新的虚拟环境的pip == 18。)
对我来说,您似乎有多个python环境,并且在其中一个环境中,没有升级的pip。您有2个选择: