Python2.7 roto por error de importación débil, por favor ayuda!


27

Acabo de actualizar de 16.04 a 17.10, y cada vez que intento ejecutar cualquier comando python2.7, recibo este error:

pip install --upgrade pip
Traceback (most recent call last):
File "/home/XXXX/bin/pip", line 7, in <module>
    from pip import main
  File "/home/XXXX/local/lib/python2.7/site-packages/pip/__init__.py", 
line 5, in <module>
    import logging
  File "/usr/lib/python2.7/logging/__init__.py", line 26, in <module>
    import sys, os, time, cStringIO, traceback, warnings, weakref, 
collections
  File "/home/XXXX/lib/python2.7/weakref.py", line 14, in <module>
    from _weakref import (
ImportError: cannot import name _remove_dead_weakref

Otro usuario tuvo un problema similar, pero esto afecta a cualquier programa de Python que intento ejecutar. No puedo instalar nada a través de pip, ni usar ningún script de Python. Realmente no tengo idea de qué hacer, la asistencia sería muy apreciada.

La salida de "python --version" es

Python 2.7.12

sin embargo, "actualizar Python" produce:

python is already the newest version (2.7.14-2ubuntu1).

Actualicé de 17.04 a 17.10 y enfrentando lo mismo ImportError: cannot import name _remove_dead_weakref. Mi Python es 2.7.14
Csaba Toth el

En mi caso, estoy usando entornos virtuales y sospecho que la python dentro de esos entornos virtuales ahora no está sincronizada con la versión del sistema tanto que se produce este error. Sospecho que reconstruir el entorno virtual desde cero puede resolver mi problema, aunque fue difícil instalar todos los paquetes :(
Csaba Toth

Respuestas:


26

Esta no es una solución de Ubuntu, pero debido a que esta pregunta aparece alta en los resultados de búsqueda del error, quería decir que tuve este error en OSX porque mi sistema predeterminado Python era 2.7, y preparé "python @ 2" instalado mientras Instalando otro paquete.

Si está en OSX y está utilizando homebrew, verifique sus paquetes instalados con brew ejecutándose brew list, y si aparece "python @ 2" en esa lista, y Python 2.7 es su Python del sistema, puede eliminar el paquete instalado con brewbrew remove python@2 --ignore-dependencies


2
Esto sucedió después de una actualización brew reemplazando muchos paquetes con su paquete @ versión nuevos ... ¡Gracias!
Hugo H

2
Esto me ayudo. Cuando se ejecuta swiften Mac, recibí los errores mencionados anteriormente. Resultó que era porque estaba usando python2 de brew. Eliminarlo solucionó mi problema.
jmurphyau

2
Gracias por esto. Ayudó a resolver mi lldbadvertencia.
Steven Hepting

Gracias por el aviso. Acabo de actualizar mis enlaces simbólicos en / usr / local / bin / python para que apunte a la última Python de Homebrew, en lugar de Python del sistema
mate

9

En caso de que estuviera utilizando un entorno virtual, deberá volver a crearlo. La otra posibilidad es que use alguna versión de python basada en fuente o instalada lateralmente que entre en conflicto con la del sistema. En ese caso, debe resolver que las carpetas y rutas correctas estén configuradas desde los distintos entornos.


3

En mi caso, fue un error relacionado con el entorno virtual. Por lo tanto, crear un nuevo entorno virtual funcionó para mí. Aquí está la lista de comandos que pueden ayudarlo en lo mismo.

Instalación de entorno virtual:

pip install virtualenv

Crear un nuevo entorno virtual:

virtualenv -p {env_name}

Activando el entorno virtual:

source env_name/bin/activate

Desactivar su entorno virtual:

deactivate

El OP no menciona un entorno virtual, por lo que su respuesta no aborda el problema cuando no se utiliza un entorno virtual.
MikeM
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.