2011-09-18 17 views
6

Estoy usando PyDev en Eclipse como mi editor de Python. Está bien en términos de conjunto de características. Todo funciona bien excepto por una cosa muy molesta:Finalización de Eclipse PyDev cuelga (una vez más)

La finalización del código en sí funciona rápido. Cuando presiono Alt + Espacio, la ventana aparece casi al instante y todas las opciones están ahí. La opción en la parte superior está seleccionada. Luego viene el problema. La descripción detallada no aparecerá hasta aproximadamente 5-10 segundos. Todo este tiempo, la CPU está funcionando a la carga máxima y la interfaz no responde. Todo el procesador es consumido por el proceso de Eclipse Java (el proceso de Python engendrado parece inactivo). Luego aparece una ventana amarilla, y todo lo que contiene es solo un código Python de una función/variable seleccionada. Todos los detalles consecutivos se muestran al instante. El procedimiento se repite cuando cierro la ventana de finalización (por ejemplo, al aceptar una de las opciones y pedir que se complete nuevamente). Esto me vuelve loco.

que he probado hasta ahora:

  • la creación de un espacio de trabajo completamente nuevo,
  • creación de un proyecto de Eclipse/PyDev desde cero,
  • ajustes de JVM para asegurarse de que tiene un montón de memoria,
  • asegurándose de que se elige la JVM correcta (la última JVM de Oracle disponible),
  • asegurándose de que el proceso de Python se comunica libremente con la instancia de Java (leí sobre posibles problemas con eso, pero parece no ser la cuestión).
  • asegurándose de que todos los complementos instalados estén actualizados.

La versión que uso es Eclipse Helios, porque la última vez que verifiqué ciertas extensiones aún no se habían trasladado a la última.

¿Alguien ha observado un problema similar? ¿Alguien pudo sortearlo? ¿Ideas generales sobre cómo depurarlo y presentar un informe de error sensible posiblemente? Otras cosas que vale la pena buscar.

¿Alguna solución menos drástica que finalizar completamente la finalización?

Gracias!

EDIT:

También he notado un problema con una ventana emergente similar en editor de HTML/CSS. Se veía algo similar (una ventana amarilla, con algo de texto dentro) y también tardaba en mostrarse. Realmente no sé si eso está relacionado, pero podría serlo.

EDITAR (2):

Ok, no he empezado con una nueva instalación de la nueva Eclipse Indigo, sin ningún tipo de plugins adicionales, aparte de PyDev y la cuestión sigue siendo. Parece que tendré que buscar un nuevo IDE.

Respuesta

0

¿Existe alguna posibilidad de que pueda proporcionar el código que lo está haciendo posible (y agréguelo a un informe de errores, consulte: http://pydev.org/about.html para obtener enlaces)?

Utilizo PyDev a diario con algunos proyectos muy grandes y no tengo ese problema, por lo que puede ser una construcción o escenario específico en tu código, o tal vez simplemente no le has dado suficiente memoria a Eclipse (lo cual hacer que el recolector de basura trabaje mucho más), en cuyo caso, eche un vistazo a: What are the best JVM settings for Eclipse? (en concreto, suba su bandera -Xmx, aunque probablemente también pueda usar los otros consejos).

Si no puede proporcionar un escenario reproducible, la otra opción sería obtener un generador de perfiles (es decir: YourKit java profiler tiene 15 días gratis lo que ayudaría en este caso), ejecutando ese caso de uso en el generador de perfiles y pasando una instantánea de lo que está sucediendo en esta situación (si ese es el caso, abra un informe de error en pydev.org y puedo ayudarlo).

+0

Creo que lo he resuelto parcialmente, vea los detalles aquí: http://stackoverflow.com/questions/7148619/eclipse-hangs-for-3-4-seconds-before-displaying-a-tooltip-message – julkiewicz

0

Lo recibí de las preguntas frecuentes de pydev.org y me funciona bien.

Cuando finalizo el código, PyDev se cuelga, ¿qué puedo hacer?

PyDev hace la mayor parte de sus cosas en Java, pero parte de la información solo puede obtenerse desde Python (principalmente builtins), por lo que, para obtener esa información, PyDev crea un shell y se comunica con ella a través de sockets .

Los principales problemas cuando esto sucede son:

  1. Hay un firewall que bloquea la comunicación a la cáscara

  2. En Linux, algunos núcleos no permiten la utilización de IPv4, lo que puede hacer PyDev falle.

Para habilitarla, haga: echo 0>/proc/sys/net/ipv6/bindv6only

  1. El tiempo de espera para conectar es demasiado pequeña.

Depende del "Tiempo de espera para conectarse a Shell" en las preferencias de código de terminación (Ventana> Preferencias> PyDev> Finalización de código)

Si nada funciona, por favor informar de un error (también, comprobar si hay algo en el registro de errores (ventana> mostrar vista> PDE Runtime> Error log) y en el eclipse '.log', que se encuentra en la carpeta .metadata de la ubicación del espacio de trabajo.

+1

cuidado, esta pregunta tiene casi un año. – Wug

2

¿Qué versión de Java hay? usted está usando?

Si tiene Windows 7, versiones posteriores de Java (creo que 6+) wi ll predeterminado a IPv6. Esto probablemente está causando el problema ya que Python puede querer IPv4.

De todos modos, desde que tuve este problema I intentado desactivar

  • pylint
  • análisis de código

pero todavía estaba colgando.

La respuesta de Pal sobre "utilización ipv4" desencadenó mi memoria sobre otro problema que había resuelto al "preferir" IPv4.

Ver http://docs.oracle.com/javase/1.4.2/docs/guide/net/ipv6_guide/

Lo que se quiere hacer es editar su eclipse.ini y añadir "-Djava.net.preferIPv4Stack = true" en la sección vmargs

-startup 
plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar 
... 
-vmargs 
-... 
-Djava.net.preferIPv4Stack=true 
... 

ya no me sale cuelga .

+0

¡Sí! ¡Sí! y otra vez ¡Sí! Como alternativa, he desactivado IPv6 en todos mis adaptadores de red, ¡y los cuelgues desaparecieron! – tishma

+0

La cuestión es que solo uso python de vez en cuando, y solía recurrir al bloc de notas ++ por este problema, ya que no tenía tiempo para resolverlo. – tishma

+0

OK. Ahora solo falla cuando presiono Ctrl-Space :( – tishma

Cuestiones relacionadas