web-dev-qa-db-fra.com

La distribution 'pip == 9.0.1' n'a pas été trouvée et est requise par l'application

Je pense que mon pip est cassé. J'ai tout essayé depuis la réinstallation forcée jusqu'à la mise à jour complète, mais rien ne semble fonctionner.

quand je fais pip2 -v alors j'obtiens ce qui suit:

Traceback (most recent call last):
  File "/usr/local/bin/pip2", line 6, in <module>
    from pkg_resources import load_entry_point
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3144, in <module>
    @_call_aside
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3128, in _call_aside
    f(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3157, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 666, in _build_master
    ws.require(__requires__)
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 984, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 870, in resolve
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'pip==9.0.1' distribution was not found and is required by the application

quand je fais pip -v alors j'obtiens ce qui suit:

Traceback (most recent call last):
  File "/bin/pip", line 7, in <module>
    from pip._internal import main
ImportError: No module named pip._internal

FYI: Je suis sur Mac OSX et j'utilise Python 2.7.14

S'il vous plaît aider!

2
user10096621

Puisque vous êtes sur macOS, votre ordinateur avait déjà un Python 2.7 pré-installé par Apple. Si vous êtes sur macOS 10.13, c'est 2.7.10; les anciennes versions ont bien sûr d'anciennes versions.

En attendant, vous avez installé Python 2.7.14. Vous ne nous avez pas dit comment — l'installateur de python.org, Anaconda, Homebrew, peu importe — mais ça va.

Le problème est que l’Apple Python 2.7.10 est toujours votre "primaire" 2.7, vous avez donc fini par utiliser une pip 9.0.1 qui a installé ses packages pour votre 2.7.14, mais qui est supposé fonctionner avec Apple 2.7. 10 à la place. C'est pourquoi il cherche dans /usr/local/lib/python2.7/site-packages, qui est les packages de site pour le 2.7.10 d'Apple, pas pour votre 2.7.14. Et soit vous n'avez pas pip pour Apple 2.7.10, soit une version plus ancienne. D'où l'erreur.


Pourquoi Le Guide de l'utilisateur de Python Packaging vous suggère de:

  • Utilisez python -m pip pour exécuter pip.
  • Utilisez des environnements virtuels si possible.

Je ne sais pas comment vous assurez normalement que vous utilisez votre 2.7.14 au lieu du 2.7.10 d'Apple, mais quelle que soit la commande que vous exécutez, si vous faites la même chose avec un -m pip, il est garanti d'utiliser votre 2.7.14 plutôt que 2.7.10 d'Apple. Par exemple, si vous tapez normalement python2, utilisez python2 -m pip au lieu de pip2.

Entre-temps, si vous activez un environnement virtuel, les versions python et pip (et d'autres éléments tels que 2to3) seront les versions compatibles avec cet environnement, quelles que soient les autres installations installées et la confusion de votre configuration système globale.

3
abarnert

Juste frappé ce même problème sur mon mac et je l'ai résolu par

$ brew upgrade python@2

La commande ci-dessus vous donne essentiellement le python 2.7.10 d’Apple.

$ which python
/usr/bin/python
$ python -V
Python 2.7.10

Pip a fonctionné immédiatement et peut être mis à niveau vers 19.0.1

pip --version
pip 18.1 from /usr/local/lib/python2.7/site-packages/pip (python 2.7)
pip install --upgrade pip setuptools
pip --version
pip 19.0.1 from /usr/local/lib/python2.7/site-packages/pip (python 2.7)

Et voici ce que brew upgrade python@2 a à dire à propos de python sur mac

==> python@2
Pip and setuptools have been installed. To update them
  pip install --upgrade pip setuptools

You can install Python packages with
  pip install <package>

They will install into the site-package directory
  /usr/local/lib/python2.7/site-packages

See: https://docs.brew.sh/Homebrew-and-Python
0
Hang