web-dev-qa-db-fra.com

`pip3 search <pkg_name>` montre la version qu'il refuse d'installer

pip3 search aiohttp produit (entre autres):

aiohttp (3.3.2)  - Async http client/server framework (asyncio)
  INSTALLED: 2.3.10
  LATEST:    3.3.2

Cependant, pip3 install --upgrade --user aiohttp répond qu'il est déjà à jour et pip3 install --user aiohttp==3.3.2 Retour:

[...] Could not find a version that satisfies
the requirement aiohttp==3.3.2 (from versions: 0.1, 0.2, 0.3, 
[... snip ...], 2.3.10, 3.0.0b0) No matching distribution found for
aiohttp==3.3.2

Python3 est v.3.5.2 et pip3 est v.18.0, qui est une mise à niveau de python3-pip v.8.1.1 du système. Pip3 a été mis à niveau localement à l'aide de pip3 upgrade --user. Voir cette question pour les liens et la discussion.

Qu'est-ce que je fais mal?

1
Diagon

Le problème principal, que nous avons débogué via le chat, est que vous avez mis à niveau pip. Cela provoque quelques ... incompatibilités (et il y a des vidages de terminal dans la salle de discussion à partir d'un conteneur 16.04 pour prendre en charge cela).

Étape 1: Supprimez les versions pip mises à niveau

Celui-ci est simple, car vous l'avez installé dans vos données locales - pip3 uninstall pip

Cela en supprimera la version dans votre espace utilisateur local.

Étape 2: Fermez votre terminal ou session SSH, puis rétablissez-le .

C'est ainsi que la session oublie l'espace utilisateur local pip3 binaire.

Étape 3: Exécutez à nouveau les étapes d'installation pour les packages PyPI que vous recherchez - pip3 install --upgrade --user aiohttp stig (cela installe également stig aussi, ce que vous avez mentionné dans le chat était votre objectif)

Cela devrait installer aiohttp version 3.4.0 (dernière version de PyPI à ce jour) et stig.


Nous avons fait tout cela dans le chat et il a installé aiohttp sans problème. Le problème avec la mise à niveau des versions de pip est cela augmentera les chances que pip ne fonctionnera pas depuis les plus récents pip dépendent fortement de la mise à jour d'une version Python. Et à moins que vous n'utilisiez virtualenvs pour vos environnements Python, vous ' re bloqué sur le système Python 3.5.2, dont le plus récent pip ne se comporte pas avec. (Notez que cela a également été reconnu lors de nos tests).

Notez également que aiohttp a une exigence répertoriée sur PyPI de Python 3.5.3 ou supérieur. Cela ne sera pas résolu dans un environnement 16.04, vous devrez donc peut-être recourir à vers Python environnements virtuels avec Python plus mis à jour, ou machines virtuelles exécutant Ubuntu 18.04, ou conteneurs (tels que conteneurs basés sur LXD ) avec 18.04. Cela vous donne une mise à jour plus = Python.

1
Thomas Ward