web-dev-qa-db-fra.com

Je continue à recevoir un message pour mettre à niveau pip

Chaque fois que je crée un venv, je reçois un message me demandant de mettre à niveau pip. J'exécute la commande pour la mise à niveau, et elle réapparaît sur un autre venv. Comment puis-je rendre cela 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.

Mise à jour: Je viens de recevoir la recommandation de lire cette réponse possible en double: virtualenv utilise le pip mis à jour du système par défaut

Cela ne résout pas mon problème cependant. Pourquoi?

Mon pip3 semble déjà être à jour: 

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)

Résolu

Solution: J'ai pu résoudre ce problème en utilisant virtualenv pour créer un nouvel environnement virtuel. Je ne sais pas s'il s'agit d'un bogue dans venv. Je vais juste utiliser le paquet qui fonctionne à l'avenir. Merci @James Lim pour la réponse.

12
Maksim

Le problème semble être que les new environnements virtuels utilisent une ancienne version de pip. Notez que pip est installé à partir d’un fichier tarfile (ou roue) source inclus avec virtualenv, dans le répertoire site-packages/virtualenv_support.

$ ls -l /path/to/site-packages/virtualenv_support
pip-9.1-py2.py3-none-any.whl

Un moyen rapide de résoudre le problème consiste à mettre à niveau pip chaque fois que vous créez un nouveau virtualenv, comme suit:

$ virtualenv venv
$ venv/bin/pip install -U pip

Sinon, assurez-vous d'avoir la dernière version de virtualenv. Selon leurs notes de publication , virtualenv==16 utilise pip==10.

$ pip install -U virtualenv

Enfin, puisque virtualenv recherche pip*.whl dans virtualenv_support, cela fonctionnera également:

$ mv /path/to/site-packages/virtualenv_support/pip*.whl{,bak}
$ pip wheel -w /path/to/site-packages/virtualenv_support/ 'pip==18'

Tous les nouveaux virtualenvs utiliseront la version de pip que vous avez installée dans virtualenv_support. Cependant, cela semble hacky.

(Tentative avec virtualenv==16. Cela entraîne tous les nouveaux virtualenvs avec pip == 18.)

2
James Lim

Pour moi, vous avez plusieurs environnements python et, dans l’un d’eux, il n’ya pas de pip mis à niveau. Vous avez 2 options: 

  • accédez à chacun de ces dossiers et mettez à jour chaque pip 
  • vous pouvez tous les supprimer, réinstaller et utiliser virtualenv à l’avenir avec le bon pip 
  • installez IDE (par exemple, PyCharm) qui peut le gérer automatiquement et afficher tous les problèmes de manière visuelle
4
wowkin2

Mettre à jour le pip à partir d'un fichier bat:

call .\venv\Scripts\activate
py -m pip install --upgrade pip
call deactivate

Ou si vous êtes dans le terminal intégré VS Code

& venv/Scripts/activate.ps1
py -m pip install --upgrade pip
1
Tyler Gubala

lors de la mise à niveau, pip désinstallait l'ancienne version, mais si l'ancienne version se trouvait à un endroit différent, elle ne pouvait pas basculer et aboutissait donc à deux versions différentes Vérifiez vos installations sur votre racine PYTHONPATH. De plus, PYTHONPATH peut ne pas être identique au chemin du système.

0
Krishna Kokila