ImportError: no hay un módulo llamado _io en ubuntu 14.04

Acabo de instalar ubuntu 14.04LTS y estoy tratando de usar pip, pero obtengo el siguiente rastreo:

(nlmanagement)psychok7@Ultrabook:~/code/work/nlmanagement$ pip freeze Traceback (most recent call last): File "/home/psychok7/code/work/venv/nlmanagement/bin/pip", line 9, in  load_entry_point('pip==1.1', 'console_scripts', 'pip')() File "/home/psychok7/code/work/venv/nlmanagement/local/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/pkg_resources.py", line 337, in load_entry_point return get_distribution(dist).load_entry_point(group, name) File "/home/psychok7/code/work/venv/nlmanagement/local/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/pkg_resources.py", line 2279, in load_entry_point return ep.load() File "/home/psychok7/code/work/venv/nlmanagement/local/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/pkg_resources.py", line 1989, in load entry = __import__(self.module_name, globals(),globals(), ['__name__']) File "/home/psychok7/code/work/venv/nlmanagement/local/lib/python2.7/site-packages/pip-1.1-py2.7.egg/pip/__init__.py", line 10, in  from pip.backwardcompat import walk_packages, console_to_str File "/home/psychok7/code/work/venv/nlmanagement/local/lib/python2.7/site-packages/pip-1.1-py2.7.egg/pip/backwardcompat.py", line 77, in  from urllib2 import URLError, HTTPError File "/usr/lib/python2.7/urllib2.py", line 94, in  import httplib File "/usr/lib/python2.7/httplib.py", line 79, in  import mimetools File "/usr/lib/python2.7/mimetools.py", line 6, in  import tempfile File "/usr/lib/python2.7/tempfile.py", line 32, in  import io as _io File "/usr/lib/python2.7/io.py", line 51, in  import _io ImportError: No module named _io 

¿¿algunas ideas?? He intentado sudo apt-get install python3-pip y sudo apt-get install python-pip

Tu virtualenv se corrompió debido a diferencias en la biblioteca del sistema Python.

La mejor opción es reinstalar tu virtualenv:

 $ deactivate $ rmvirtualenv nlmanagement $ mkvirtualenv nlmanagement $ pip install -r requirements.txt 

Yo tuve el mismo problema. Esto sucedió en Ubuntu – 14.04 y en la versión Python del entorno virtual – 2.7.3

Después de pasar un día en la depuración, publicar mi respuesta aquí, espero que sirva para futuros visitantes.

Encontré que io.py está invocando el módulo _io . Creo que el módulo _io es interno para el intérprete, por lo tanto, solo debe reemplazar el binario python en el entorno solo con la versión más reciente.

(En mi caso, el virtualenv del Agente Cloudera Manager 5.x en ubuntu 14.04 estaba usando el intérprete de Python 2.7.3, reemplazado por 2.7.6.

 echo "Using " && python2.7 --version mv myenv/bin/python myenv/bin/python.bak; cp `which python2.7` myenv/bin/python 

Cuando se crea un nuevo virtualenv, utiliza el binario de python actualizado del sistema. Por lo tanto, eso explica la respuesta aceptada en el hilo.

No es necesario eliminar el entorno virtual.

Solo sigue estos pasos.

  1. Digamos que el nombre de su entorno virtual es “mydev” y está usando virtualenvwrapper , haga

     cd $WORKON_HOME virtualenv mydev 

    El comando anterior simplemente actualiza el enlace al ejecutable de Python sin perder ningún paquete. Sin virtualenvwrapper , $WORKON_HOME podría no estar definido; entonces necesitas cambiar al directorio padre de virtualenv.

  2. fuera de virtualenv, si su pip no funciona, entonces solo

     easy_install pip 

    resolverá el problema

Después de actualizar mi servidor de Ubuntu a 14.04, también tengo este tipo de problema al ejecutar pip

 ImportError: No module named _io 

¡Entonces descubrí que simplemente reinstalar virtualenv puede resolver este problema!

sudo pip install virtualenv --upgrade

Una causa de esto es un mal “pip”. Consulte: https://bugs.launchpad.net/ubuntu/+source/python-pip/+bug/1373254

Y / o puede ser un problema con virtualenv: https://bugs.launchpad.net/ubuntu/+source/python2.7/+bug/1115466 Donde la solución recomendada es:

  cd /usr/lib/python2.7 ln -s plat-x86_64-linux-gnu/_sysconfigdata_nd.py . 

Tienes que reemplazar la versión de python en tu virtualenv corrupto.

Hacer esto:

  1. Crear un nuevo virtualenv

     mkvirtualenv MyNewTestEnv 
  2. Localice “python” (en mi caso, los virtualesenvs están ubicados en el directorio de inicio)

     cd ~/.virtualenvs/MyNewTestEnv/bin 
  3. Copie “python” del nuevo virtualenv en su virtualenv corrupto

     cp ~/.virtualenvs/MyNewTestEnv/bin/python ~/.virtualenvs//bin 

Eso es. Ahora tu CorruptedEnv debería ser arreglado.

Si ha instalado diferentes versiones de python. Debe hacer referencia a su python

 virtualenv -p /usr/bin/python2.7 myenv 

o

 virtualenv -p /usr/bin/python3.x myenv 

Esta solución se aplica a la Python descargada de SuSE 12.2 y se instaló con ./configure y make install para desactivar la carpeta / usr / local

Pip instalado y virtualenv

Al tratar de crear env envio virtual de Python

 *linux-t69c:/nkadic # virtualenv -p python venv2* **ImportError: No module named _struct** or (if manually setting PYTHONPATH) **ImportError: No module named _io** 

Aquí está la solución:

Verifique el sys.path python predeterminado (no cambie PYTHONPATH predeterminado)

compruebe si hay libs dir /usr/local/lib/python2.7/lib-dynload existe

Si no es así, cree un enlace simbólico a la ruta lib64 existente:

 linux-t69c:/nkadic # ln -s /usr/local/lib64/python2.7/lib-dynload/ /usr/local/lib/python2.7/lib-dynload linux-t69c:/nkadic # ls -ltr /usr/local/lib/python2.7/lib-dynload lrwxrwxrwx 1 root root 39 Aug 12 21:06 /usr/local/lib/python2.7/lib-dynload -> /usr/local/lib64/python2.7/lib-dynload/ 

Después de esta solución, funciona “virtualenv -p python venv2”

 linux-t69c:/nkadic # virtualenv -p python venv2 Already using interpreter /usr/local/bin/python PYTHONHOME is set. You *must* activate the virtualenv before using it New python executable in /nkadic/venv2/bin/python Installing setuptools, pip, wheel...done. linux-t69c:/nkadic #