‘Importar sitecustomize’ falló al iniciar spyder

Estoy tratando de instalar python. O en realidad, ya lo instalé y lo desinstalé varias veces. Estoy usando pythonxy con el IDE del spyder (estoy acostumbrado a matlab porque quiero usar el spyder). Python 3.3.2 ni siquiera comenzaría con spyder en mi máquina win8, por lo que ahora tengo instalada la versión 2.7.

¿Spyder se inicia ahora, pero al iniciar me falla el `’import sitecustomize’? en mi consola y python no ejecuto ningún comando que ingrese. Después del error, el startupscript continúa para siempre sin hacer nada y tampoco puedo hacer nada. El error me dice que inicie Python con el apéndice -v, que se muestra a continuación.

He buscado en Google este error que me dio dos soluciones posibles: debería editar python.rb https://github.com/mxcl/homebrew/commit/10ba101c323f98118b427f291e15abc5b3732991 o debo aplicar esto (archivo adjunto en la última publicación allí) a sitecustomize https: / /code.google.com/p/spyderlib/issues/detail?id=771

La aplicación del archivo diff no ayudó y como mata explica a continuación, el archivo .rb se utiliza durante la instalación, por lo que no es aplicable a mi problema.

Así que mi pregunta: ¿Alguien sabe cómo solucionar este error por experiencia?

El error:

'import sitecustomize' failed; use -v for traceback Python 2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. 

El rastreo:

 C:\Python27\lib\site-packages\spyderlib\pil_patch.pyc matches C:\Python27\lib\site-packages\spyderlib\pil_patch.py import spyderlib.pil_patch # precompiled from C:\Python27\lib\site-packages\spyderlib\pil_patch.pyc Traceback (most recent call last): File "C:\Python27\lib\site.py", line 498, in execsitecustomize import sitecustomize File "C:\Python27\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 174, in  os.environ["SPYDER_AR_STATE"].lower() == "true") File "C:\Python27\lib\site-packages\spyderlib\widgets\externalshell\monitor.py", line 146, in __init__ self.n_request.connect( (host, notification_port) ) File "C:\Python27\lib\socket.py", line 224, in meth return getattr(self._sock,name)(*args) socket.error: [Errno 10061] No connection could be made because the target machine actively refused it Python 2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. 

(Spyder dev aquí) Estoy casi seguro de que su problema se debe a un problema de firewall. Parece que su firewall es demasiado estricto y está bloqueando todos los bashs de intentar abrir un puerto para nuestros propósitos.

Para evitar el locking de la aplicación completa al evaluar cosas, ejecutamos nuestro intérprete de python en un proceso diferente al que ejecuta Spyder. Nos comunicamos con ese proceso mediante un simple protocolo de sockets, que abre un nuevo puerto en su máquina y envía datos entre la consola y Spyder a través de ese puerto.

Esa es también la razón por la que no ve el error en un intérprete de Python normal: porque no es necesario abrir un puerto para ejecutarse.

Después de buscar en la configuración del firewall, no pude encontrar ninguna que hiciera funcionar el spyder.
Algunas ejecuciones funcionarían, otras no, con la misma configuración exacta.
Descartaría el firewall por ahora.

Noté que el puerto con el que se sitecustomize bashs de conexión no está escuchando.
La configuración de SPYDER_DEBUG=True antes de lanzar el spyder ofrece más detalles:

 Traceback (most recent call last): File "P:\Python33\lib\threading.py", line 637, in _bootstrap_inner self.run() File "P:\Python33\lib\site-packages\spyderlib\widgets\externalshell\introspection.py", line 64, in run sock.bind( ("127.0.0.1", self.port) ) OSError: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions` 

Hice un truco sucio al reemplazar la línea:

 sock.bind( ("127.0.0.1", self.port) ) 

por el siguiente:

 for loopCount in range(10, -1, -1): try: sock.bind( ("127.0.0.1", self.port) ) break except OSError: if DEBUG: logging.debug('Notification server: Bind on port %d failed...' % (self.port)) if not loopCount: raise import time time.sleep(1) 

Parece funcionar, pero esto puede ser más suerte que cualquier otra cosa …

Versiones:

  • Spyder 2.3.0dev1
  • Python 3.3.2 (64 bit)

Siguiendo la respuesta de Carlos cordova, hice lo siguiente (usando Ubuntu 15.10):

1-) Desactivado el firewall

 sudo ufw disable 

2-) Restablecer el spyder y la configuración predeterminada aplicada:

 spyder --reset spyder --default 

3-) Corrió Spyder de nuevo

 spyder 

4-) Habilitar el firewall.

 sudo ufw enable 

Y está funcionando normalmente ahora.

Yo tuve el mísmo problema. trabajé en él durante meses … el spyder de la biblioteca de EPEL para Redhat 7 (Scientific Linux).

Finalmente descubrí que necesitaba un paquete adicional que no se estableció como requisito. python-matplotlib

Después de agregar ese paquete de Python todos mis problemas desaparecieron!

Arrrggghhhhh ……. !!!!!