问题
Whenever I create a venv, I get a message asking me to upgrade pip. I run the command for upgrade, and it pops up again on another venv. How can I make this permanent.
Message:
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.
Update: Just received recommendation to read this possible duplicate answer: virtualenv use upgraded system default pip
This does not solve my issue though. Why?
My pip3
appears to already be up to date:
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)
Solved
Solution: I was able to fix this altogether by using virtualenv
to create a new virtual environment. Not sure if this is a bug in venv
. I'll just use the package that works going forward. Thanks @James Lim for the answer.
回答1:
The issue seems to be that new virtual environments are using an old version of pip. Note that pip is installed from a source tarfile (or wheel) included with virtualenv, in the site-packages/virtualenv_support
directory.
$ ls -l /path/to/site-packages/virtualenv_support
pip-9.1-py2.py3-none-any.whl
A quick way to workaround the problem is to make sure you upgrade pip whenever you create a new virtualenv, like so:
$ virtualenv venv
$ venv/bin/pip install -U pip
Alternatively, make sure you have the latest version of virtualenv. According to their release notes, virtualenv==16
is using pip==10
.
$ pip install -U virtualenv
Finally, since virtualenv looks for pip*.whl
in virtualenv_support
, this will also work:
$ mv /path/to/site-packages/virtualenv_support/pip*.whl{,bak}
$ pip wheel -w /path/to/site-packages/virtualenv_support/ 'pip==18'
All new virtualenvs will use the version of pip that you installed into virtualenv_support
. However, this feels hacky.
(Attempted with virtualenv==16
. This results in all new virtualenvs with pip==18.)
回答2:
For me looks like you have multiple python environments and in one of them, there is not an upgraded pip. You have 2 options:
- navigate to each of that folders and update each pip
- you can remove all of them, reinstall and use virtualenv in future with correct pip
- install some IDE (e.g. PyCharm) that can handle that automatically for you and show all issues visually
回答3:
Update pip from a bat file:
call .\venv\Scripts\activate
py -m pip install --upgrade pip
call deactivate
Or if you are in VS Code integrated Terminal
& venv/Scripts/activate.ps1
py -m pip install --upgrade pip
回答4:
when upgrading pip would uninstall the old version, but if old version is in a different place it cant,hence ending up in two different pip versions. Check your installations on your root PYTHONPATH. Also PYTHONPATH may not be same as system path.
回答5:
Here is the solution to your issue.
step 1 : run this command in your shell or jupyter notebook it will securely download get-pip.py from pypa
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
step 2 : run below code
python get-pip.py
来源:https://stackoverflow.com/questions/51644402/i-keep-getting-a-message-to-upgrade-pip