76
votes

pip ne fonctionne plus après l'erreur de mise à jour L'objet 'module' n'est pas appelable

Après une mise à jour de pip, pip a complètement cessé de fonctionner.

Z:\>pip install matplotlib
Traceback (most recent call last):
  File "c:\program files\python37\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "c:\program files\python37\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Program Files\Python37\Scripts\pip.exe\__main__.py", line 9, in <module>
TypeError: 'module' object is not callable

Une aide s'il vous plaît?

Edit: je travaille sur Windows 10


9 commentaires

Pourriez-vous essayer python -m pip install matplotlib et signaler l'erreur?


qui semble fonctionner


Prenez l'habitude d'utiliser python -m pip


Il semble y avoir un problème concernant ce 19.3 ne fonctionne pas après la mise à niveau de 19.2.3


@hansolo Quel est le raisonnement derrière cette habitude?


@AnnevanRossum Exécution de python -m pip assurez-vous que pip invoqué est toujours associé au python vous exécutez


Cela a résolu le problème pour moi: github.com/pypa/pip/issues/7209#issuecomment-544696017


@hansolo Il doit y avoir autre chose qui se passe aussi. Sur mon système, pip échoue, tandis que python -m pip réussit. Il s'agit d'un système multi-python (et pip3 réussit ainsi que python3 -m pip ). Je me demandais si pip était utilisé tel quel, il utilise un PYTHONPATH différent ou fait autre chose.


@AnnevanRossum J'ai essayé python -m pip install --upgrade pip et cela a fonctionné


10 Réponses :


90
votes

Tout le mérite revient à l'utilisateur han_solo , qui a laissé la réponse sous forme de commentaire, au lieu de réponse:

Au lieu de pip install stdlib_list --user

utiliser python -m pip install stdlib_list --user

Remplacez stdlib_list par matplotlib ou quel que soit le nom du package souhaité.


3 commentaires

Pourquoi cela arrive-t-il?


beurk. mais au moins vous pouvez définir un alias alias pip="python -m pip" (ou alias pip="python3 -m pip" ). ajoutez cela à ~ / .bash_aliases ou à votre fichier shell rc


use python3 -m pip install stdlib_list --user pour python3. le nom du module est toujours pip pour ce cas.



15
votes

J'ai eu le même problème que vous et je l'ai résolu en désinstallant pip et en l'installant à nouveau.

Pour désinstaller: python -m pip désinstaller pip

Pour installer, suivez les instructions: https://www.liquidweb.com/kb/install-pip-windows/

Après cela, vous aurez une version 19.0.3 plus ancienne mais fonctionnelle.


0 commentaires

2
votes

Similaire à ce que @han_solo a dit, mais si vous utilisez python3, au lieu d'utiliser:

python -m pip install stdlib_list --user

essayez d'utiliser:

python3 -m pip install stdlib_list --user


1 commentaires

Alden, la prochaine fois, modifiez simplement la réponse existante et ajoutez python3 -m pip install stdlib_list --user au lieu d'avoir une toute nouvelle réponse juste pour ajouter un nombre



2
votes

Ayez l'habitude d'installer tous les packages python avec pip en utilisant python -m , par exemple pour installer numpy, utilisez la commande ci-dessous:

python -m pip installer numpy

En cas d'erreur avec l'erreur d'autorisation d'environnement, ajoutez --user dans la même commande:

python -m pip install numpy --user


0 commentaires

-1
votes

Avait le même problème. J'ai réussi à le réparer en réinstallant pip en place, en combinant les autres réponses:

python -m pip install -U --force-reinstall pip


0 commentaires

6
votes

Si vous ne souhaitez pas utiliser la commande longue à chaque fois que python -m pip install <package> , réinstallez pip dans l'ancienne version où cette erreur n'était pas présente.

python -m pip install pip==19.0.3

Vous pourrez maintenant utiliser pip install matplotlib ou pip list normalement.

Et chaque fois que le bogue est résolu, mettez à jour pip comme vous l'avez fait auparavant.


0 commentaires

5
votes

Cela a fonctionné pour moi, désinstallez pip 19.3.1 et remplacez-le par 19.0.3, erreur disparue.

python -m pip install pip==19.0.3 --user


0 commentaires

0
votes

J'ai eu le même problème avec h5py-2.7.1, et les avertissements ont disparu après la mise à niveau vers h5py-2.10.0.


0 commentaires

0
votes

Je ne peux pas encore laisser les commentaires, j'ai donc décidé de laisser un lien avec une explication de la raison pour laquelle cela peut arriver: https://github.com/pypa/pip/issues/5599

Si tel est le cas, vous pouvez essayer de le réparer en rétrogradant la version de pip avec la commande suivante:

 python -m pip install pip==<previous version>


0 commentaires

0
votes

dans un cas, à partir de votre fichier python, effectuez cette modification dans votre IMPORT

--import [MODULE]
++from [MODULE_NAME] import [MODULE]


0 commentaires