5
votes

pip donne une erreur de conflit lors de l'installation du package

Lors de l'exécution de $ pip install , j'obtiens une erreur ci-dessous, dans ce cas, j'installe PyJWT et j'ai également vérifié les autres packages à vérifier. Cela s'est produit après la mise à niveau de pip vers 19.0.2 à partir de 19.0.1.

Vérifiez les erreurs ci-dessous lors de l'exécution de pip install PyJWT, les exigences sont déjà satisfaites, mais j'obtiens toujours une erreur, veuillez suggérer comment la corriger.

XXX

pour réinstaller le pip.

$ pip install PyJWT

Tejeshs-MacBook-Air:selenium_testing tejeshagrawal$ pip install PyJWT
Requirement already satisfied: PyJWT in
/usr/local/lib/python3.7/site-packages (1.7.1) Error checking for
conflicts. Traceback (most recent call last):   File
"/Users/tejeshagrawal/Library/Python/3.7/lib/python/site-packages/pip/_vendor/pkg_resources/__init__.py",
line 2897, in _dep_map
    return self.__dep_map   File "/Users/tejeshagrawal/Library/Python/3.7/lib/python/site-packages/pip/_vendor/pkg_resources/__init__.py",
line 2691, in __getattr__
    raise AttributeError(attr) AttributeError: _DistInfoDistribution__dep_map

**During handling of the above exception, another exception occurred:**

Traceback (most recent call last):   File
"/Users/tejeshagrawal/Library/Python/3.7/lib/python/site-packages/pip/_vendor/pkg_resources/__init__.py",
line 2888, in _parsed_pkg_info
    return self._pkg_info   File "/Users/tejeshagrawal/Library/Python/3.7/lib/python/site-packages/pip/_vendor/pkg_resources/__init__.py",
line 2691, in __getattr__
    raise AttributeError(attr) AttributeError: _pkg_info

**During handling of the above exception, another exception occurred:**

Traceback (most recent call last):   File
"/Users/tejeshagrawal/Library/Python/3.7/lib/python/site-packages/pip/_internal/commands/install.py",
line 503, in _warn_about_conflicts
    package_set, _dep_info = check_install_conflicts(to_install)   File
"/Users/tejeshagrawal/Library/Python/3.7/lib/python/site-packages/pip/_internal/operations/check.py",
line 108, in check_install_conflicts
    package_set, _ = create_package_set_from_installed()   File "/Users/tejeshagrawal/Library/Python/3.7/lib/python/site-packages/pip/_internal/operations/check.py",
line 47, in create_package_set_from_installed
    package_set[name] = PackageDetails(dist.version, dist.requires())   File
"/Users/tejeshagrawal/Library/Python/3.7/lib/python/site-packages/pip/_vendor/pkg_resources/__init__.py",
line 2635, in requires
    dm = self._dep_map   File "/Users/tejeshagrawal/Library/Python/3.7/lib/python/site-packages/pip/_vendor/pkg_resources/__init__.py",
line 2899, in _dep_map
    self.__dep_map = self._compute_dependencies()   File "/Users/tejeshagrawal/Library/Python/3.7/lib/python/site-packages/pip/_vendor/pkg_resources/__init__.py",
line 2908, in _compute_dependencies
    for req in self._parsed_pkg_info.get_all('Requires-Dist') or []:   File
"/Users/tejeshagrawal/Library/Python/3.7/lib/python/site-packages/pip/_vendor/pkg_resources/__init__.py",
line 2890, in _parsed_pkg_info
    metadata = self.get_metadata(self.PKG_INFO)   File "/Users/tejeshagrawal/Library/Python/3.7/lib/python/site-packages/pip/_vendor/pkg_resources/__init__.py",
line 1410, in get_metadata
    value = self._get(self._fn(self.egg_info, name))   File "/Users/tejeshagrawal/Library/Python/3.7/lib/python/site-packages/pip/_vendor/pkg_resources/__init__.py",
line 1522, in _get
    with open(path, 'rb') as stream: FileNotFoundError: [Errno 2] No such file or directory:
'/usr/local/lib/python3.7/site-packages/~ip-18.1.dist-info/METADATA'
Tejeshs-MacBook-Air:selenium_testing tejeshagrawal$ pip freeze >
require.txt Could not parse requirement: -ip Exception: Traceback
(most recent call last):   File
"/Users/tejeshagrawal/Library/Python/3.7/lib/python/site-packages/pip/_vendor/pkg_resources/__init__.py",
line 2584, in version
    return self._version   File "/Users/tejeshagrawal/Library/Python/3.7/lib/python/site-packages/pip/_vendor/pkg_resources/__init__.py",
line 2691, in __getattr__
    raise AttributeError(attr) AttributeError: _version

**During handling of the above exception, another exception occurred:**

Traceback (most recent call last):   File
"/Users/tejeshagrawal/Library/Python/3.7/lib/python/site-packages/pip/_internal/cli/base_command.py",
line 179, in main
    status = self.run(options, args)   File "/Users/tejeshagrawal/Library/Python/3.7/lib/python/site-packages/pip/_internal/commands/freeze.py",
line 93, in run
    for line in freeze(**freeze_kwargs):   File "/Users/tejeshagrawal/Library/Python/3.7/lib/python/site-packages/pip/_internal/operations/freeze.py",
line 62, in freeze
    req = FrozenRequirement.from_dist(dist)   File "/Users/tejeshagrawal/Library/Python/3.7/lib/python/site-packages/pip/_internal/operations/freeze.py",
line 239, in from_dist
    req = dist.as_requirement()   File "/Users/tejeshagrawal/Library/Python/3.7/lib/python/site-packages/pip/_vendor/pkg_resources/__init__.py",
line 2716, in as_requirement
    if isinstance(self.parsed_version, packaging.version.Version):   File
"/Users/tejeshagrawal/Library/Python/3.7/lib/python/site-packages/pip/_vendor/pkg_resources/__init__.py",
line 2551, in parsed_version
    self._parsed_version = parse_version(self.version)   File "/Users/tejeshagrawal/Library/Python/3.7/lib/python/site-packages/pip/_vendor/pkg_resources/__init__.py",
line 2589, in version
    raise ValueError(tmpl % self.PKG_INFO, self) ValueError: ("Missing 'Version:' header and/or METADATA file", Unknown [unknown version]
(/usr/local/lib/python3.7/site-packages))


1 commentaires

J'ai également essayé de supprimer les fichiers de cache du dossier ~ / Library / Caches / pip mais cela donne une erreur.


4 Réponses :


1
votes

Vous pouvez essayer d'installer le package pip-conflict-checker:

pipconflictchecker

puis exécuter la commande:

pip install pip-conflict-checker

cela vous montrera les paquets qui causent des problèmes


2 commentaires

J'ai essayé de l'exécuter, cela ne me donne pas le nom du package qui cause des problèmes


Je ne peux pas installer pip-conflict-checker car j'obtiens des conflits haha ​​fml



8
votes

Il semble que votre problème soit similaire ou identique à ce bogue qui était ironiquement < a href = "https://github.com/pypa/pip/pull/6225" rel = "noreferrer"> corrigé dans 19.0.2 . Le problème est quelque part le long de la ligne où vous avez essayé d'installer un module et il a échoué. pip n'a pas correctement nettoyé après lui-même et a laissé un paquet dans un état cassé.

La solution semble être de trouver tous les répertoires commençant par - dans votre répertoire site-packages ( /Users/tejeshagrawal/Library/Python/3.7/ lib / python / site-packages dans votre cas) et renommez-les comme ils devraient être. par exemple. si vous trouvez -yJWT-1.0.dist-info , vous devez le renommer en PyJWT-1.0.dist-info . Si vous n'êtes pas sûr de son vrai nom, recherchez la valeur Name dans -yJWT-1.0.dist-info / METADATA . NB. Je viens d'utiliser PyJWT comme exemple, il se peut que ce ne soit pas le ou les packages qui sont / sont cassés. Après cela, pip devrait pouvoir se remettre en marche.


3 commentaires

Je n'ai pas pu trouver -yJWT-1.0.dist-info et d'autres dossiers avec le mot-clé "-", et j'ai accidentellement supprimé le dossier _vendor du dossier pip. pour résoudre le problème mis à niveau python3 avec $ brew upgrade python3, qui a ensuite été mis à niveau vers python-3.7.2_2. puis j'ai fatigué d'exécuter $ pip, cela m'a donné -bash: / usr / local / bin / pip: /usr/local/Cellar/python/3.7.0/bin/python3.7: mauvais interpréteur: aucun fichier ou répertoire de ce type . encore une fois, j'ai installé python3 par $ brew install python3 et pour installer pip en utilisant sudo python3 -m pip installer pip setuptools, il a installé pip3 mais il me donne encore une erreur de conflit


oui la solution est correcte, j'ai trouvé un dossier avec -ip-18.1.dist-info /, que je l'ai renommé en ip-18.1.dist-info / et cela n'a pas résolu le problème, j'ai donc examiné l'erreur de près , et cela devrait être pip-18.1.dist-info / donc encore une fois je l'ai renommé en pip-18.1.dist-info /. $ mv ip-18.1.dist-info / pip-18.1.dist-info / maintenant il ne donne pas d'erreur, merci pour la solution


Dans Win7, il commence par un ~ (tilde).



1
votes

Constatation complémentaire: En utilisant la réponse @Dunes, je n'ai pas pu corriger le nom du fichier, j'ai donc fini par désinstaller chaque paquet de PIP

PowerShell pip uninstall -y (pip freeze)

Quand la boucle s'est rompue sur le Plackage "Plotly", j'ai trouvé le coupable.


0 commentaires

-1
votes

Vous pouvez également créer un environnement virtuel en suivant ce lien: - https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#creating -un-environnement-avec-commandes

    Step 1: conda create -n myenv python=3.7.4
    Step 2: conda activate myenv
    Step 3: pip install package_name

Ceci aide à gérer un environnement conda individuel pour gérer les paquets.


0 commentaires