GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Pip3 ¿Dependencia faltante?

Instalé la última versión de Ubuntu Gnome hoy y estaba configurando mi máquina para el trabajo relacionado con la ciencia de datos. Cuando intenté instalar tensorflow-gpu, me encontré con un bloqueo de pip3:

[email protected]:~/Desktop$ pip3
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/pip/_vendor/__init__.py", line 33, in vendored
    __import__(vendored_name, globals(), locals(), level=0)
ImportError: No module named 'pip._vendor.pkg_resources'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/bin/pip3", line 9, in <module>
    from pip import main
  File "/usr/lib/python3/dist-packages/pip/__init__.py", line 13, in <module>
    from pip.exceptions import InstallationError, CommandError, PipError
  File "/usr/lib/python3/dist-packages/pip/exceptions.py", line 6, in <module>
    from pip._vendor.six import iteritems
  File "/usr/lib/python3/dist-packages/pip/_vendor/__init__.py", line 75, in <module>
    vendored("pkg_resources")
  File "/usr/lib/python3/dist-packages/pip/_vendor/__init__.py", line 36, in vendored
    __import__(modulename, globals(), locals(), level=0)
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 664, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 634, in _load_backward_compatible
  File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 2927, in <module>
  File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 2913, in _call_aside
  File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 2952, in _initialize_master_working_set
  File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 956, in subscribe
  File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 2952, in <lambda>
  File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 2515, in activate
  File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 2097, in declare_namespace
  File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 2047, in _handle_ns
  File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 2066, in _rebuild_mod_path
AttributeError: '_NamespacePath' object has no attribute 'sort'

Intenté purgar python3-pip y volver a instalarlo, todavía no funciona. Obtengo lo anterior simplemente ejecutando pip3 en la terminal y presionando ENTER.

¿Alguna idea?

EDITAR:también las dos rutas son diferentes para pip y pip3:

[email protected]:~$ which pip
/home/me/.local/bin/pip
[email protected]:~$ which pip3
/usr/bin/pip3

Respuesta aceptada:

Lo solucioné creando un nuevo entorno virtual

  1. Un nuevo entorno virtual puede ser creado por:

    python3 -m venv /tmp/newvenv
    
  2. Luego verifiqué si pip funciona bien en el nuevo entorno virtual:

    cd /tmp/newvenv/bin
    ./pip3
    

Esto me dio el mensaje normal como el siguiente:

Uso:
pip [opciones]

Comandos:

instalar paquetes de instalación.

descargar Descargar paquetes.

Sin embargo, pip3 todavía ha fallado.

    pip3

Esto todavía me dio el mensaje de error.

Luego decidí copiar las versiones de trabajo de pip en el directorio de inicio. Para los dos pasos a continuación (n.º 3 y n.º 4), es posible que desee conservar copias de seguridad.

  1. He sobrescrito pip y pip-9.0.1.dist-info del entorno virtual al directorio de inicio:

    cp -r /tmp/newvenv/lib/python3.5/site-packages/pip ~/.local/lib/python3.5/site-packages/
    cp -r /tmp/newvenv/lib/python3.5/site-packages/pip-9.0.1.dist-info ~/.local/lib/python3.5/site-packages/
    
  2. También copié los siguientes dos archivos:

    cp /tmp/newvenv/lib/python3.5/site-packages/pkg_resources/__init__.py ~/.local/lib/python3.5/site-packages/pkg_resources/ 
    cp /tmp/newvenv/lib/python3.5/site-packages/pkg_resources/py31compat.py ~/.local/lib/python3.5/site-packages/pkg_resources/
    

Después de estos pasos, pip3 funciona bien en mi caso.

Relacionado:¿Cómo restaurar los repositorios predeterminados?
Ubuntu
  1. Buzón ocupado ¿Leer archivo línea por línea?

  2. ¿No puede encontrar el archivo para parchear en la línea de entrada 3?

  3. ¿Falta un nuevo archivo en Ubuntu 13.04?

  4. ¿Asociar una palabra clave a una aplicación en Unity Launcher?

  5. ¿Restauración de copias de seguridad con fallas en Ubuntu 16.04?

Cómo leer archivos línea por línea en Bash

Cómo leer un archivo línea por línea en Bash

Comentar/Descomentar una línea en el archivo de configuración de Ubuntu

Cat ¿Línea X a Línea Y en un archivo enorme?

¿Falta la dependencia de Libxmlrpc-c3 al instalar Boxee?

¿Asociación de archivo a aplicación no listada?