pip ya no funciona después de que el error de actualización del objeto 'módulo' no es invocable

70

Después de una actualización de pip, pip ha dejado de funcionar por completo.

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

Cualquier ayuda por favor?

Editar: estoy trabajando en Windows 10

Agustin
fuente
13
¿Podría intentar python -m pip install matplotlibinformar el error?
Han Solo
10
Acostúmbrate a usarpython -m pip
Han Solo
3
Parece que hay un problema con respecto a que este 19.3 no funciona después de actualizar desde 19.2.3
han solo
1
@AnnevanRossum Running python -m pipasegúrate de que pipinvocar siempre esté asociado con el pythonque estás ejecutando
han solo
2
@hansolo También debe haber algo más. En mi sistema pipfalla, mientras que python -m piptiene éxito. Este es un sistema multi-python (y pip3tiene éxito también python3 -m pip). Me preguntaba si pipse usó como está, si usa uno diferente PYTHONPATHo si hace algo diferente.
Anne van Rossum el

Respuestas:

81

Todo el crédito por esto va al usuario han_solo , que dejó la respuesta como un comentario, en lugar de como una respuesta:

En vez de pip install stdlib_list --user

utilizar python -m pip install stdlib_list --user

Reemplace stdlib_listcon matplotlibo el nombre que sea del paquete que desea.

Palillo de dientes anémona
fuente
20
¿Por qué está pasando esto?
darkgaze
1
Me
alegraste el
1
qué asco. pero al menos puedes establecer un alias alias pip="python -m pip"(o alias pip="python3 -m pip"). agregue eso a ~ / .bash_aliases o su archivo rc shell
fbas
utilizar python3 -m pip install stdlib_list --userpara python3. El nombre del módulo sigue siendo pippara este caso.
smcg
1
¿sabes cómo ejecutar el comando anterior en código python?
Mamen
14

Tuve el mismo problema que usted y lo resolví desinstalando pip e instalándolo nuevamente.

Para desinstalar: python -m pip uninstall pip

Para instalar, siga las instrucciones: https://www.liquidweb.com/kb/install-pip-windows/

Después de eso, tendrá una versión 19.0.3 más antigua pero funcional.

rdemarqui
fuente
6

Si no desea utilizar el comando largo cada vez python -m pip install <package>, reinstale pip a la versión anterior donde este error no estaba allí.

python -m pip install pip==19.0.3

Ahora podrás usarlo pip install matplotlibo pip listnormalmente.

Y cada vez que se resuelva el error, actualice pip como lo hizo antes.

mudit
fuente
4

Esto funcionó para mí, desinstalar pip 19.3.1 y reemplazar con 19.0.3, error desaparecido.

python -m pip install pip==19.0.3 --user
Camilo Caquimbo
fuente
2

Tienen la costumbre de instalar cualquier paquete de pitón con la pipa utilizando -m pitón , por ejemplo para la instalación de numpy utilizar por debajo de comando:

python -m pip install numpy

En caso de que se equivoque con el error de permiso del entorno, agregue --user en el mismo comando:

python -m pip install numpy --user

Piyush Upadhyay
fuente
1

Similar a lo que dijo @han_solo, pero si está ejecutando python3, en lugar de usar:

python -m pip install stdlib_list --user

intente usar:

python3 -m pip install stdlib_list --user

Alden DelVecchio
fuente
3
Alden, más bien la próxima vez solo edite la respuesta existente y agregue en python3 -m pip install stdlib_list --userlugar de tener una respuesta completamente nueva solo para agregar un número
Phillip Jacobs
0

Tuve el mismo problema con h5py-2.7.1, y las advertencias desaparecieron después de actualizar a h5py-2.10.0.

Ashkan
fuente
0

Todavía no puedo dejar los comentarios, por lo tanto, he decidido dejar un enlace con una explicación de por qué esto puede suceder: https://github.com/pypa/pip/issues/5599

Si este es el caso, puede intentar solucionarlo degradando la versión de pip con el siguiente comando:

 python -m pip install pip==<previous version>
Dmitry Amelin
fuente
-1

Tuve el mismo problema He logrado solucionarlo reinstalando pip en su lugar, combinando las otras respuestas:

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

Michal Sylwester
fuente