Pregunta

¿Qué experiencias tienes con Stackless Python y PyQt?

Cuestiones que me encantaría que la gente abordara:

  1. Compilación de PyQt para Stackless:¿Es necesario compilar PyQt especialmente para Stackless?¿La compilación es fluida?problemas con fijaciones, etc.

  2. Estabilidad:¿Algún bloqueo, congelamiento, pausa y otras rarezas inesperadas?

  3. Gestión de la memoria:cualquier indicio de pérdida de memoria.Comparación de la RAM necesaria para aplicaciones Stackless/Plain Vanilla PyQt

  4. Empoderamiento de la ingeniería de software:Descripción muy breve de los modelos de flujo de control para aplicaciones PyQt con tecnología Stackless.

  5. Lecciones aprendidas:cualquier lección dolorosa aprendida, trampas que evitar, problemas que abordar que pueda haber experimentado

Ser feliz

¿Fue útil?

Solución

Intenté seguir este camino hace varios meses y decidí que no valía la pena el esfuerzo.

Pude ejecutar una instalación binaria de PyQt (en Windows) en una versión sin pila de Python, pero descubrí que tenía que ingresar manualmente y cambiar algunos de los archivos.Recibí un mensaje de error (lo siento, no recuerdo cuál era) y la búsqueda en Google me llevó a una solución de hace varios años.El código más nuevo no incluía la solución anterior, por lo que el cambio no fue demasiado difícil y (si no recuerdo mal) estaba en Python, por lo que no fue necesario volver a compilarlo.

Pero eso fue un factor decisivo para mí.Las actualizaciones de Qt se publican periódicamente, al igual que las actualizaciones de PyQt, y no quería estar arreglando el código continuamente.Stackless y PyQt simplemente no se usan lo suficiente juntos como para verificarlos a fondo.Encontré que el riesgo de problemas difíciles de depurar es bastante alto.Esto es especialmente cierto dado que el autor de stackless pasó a PyPy.Permítanme disculparme de antemano. Ojalá tuviera las referencias que encontré sobre el autor que detuvo el desarrollo en Python sin pila y más detalles sobre los errores que tuve que corregir. No esperaba regurgitar los detalles sobre Stack Overflow.

Así que elegí ejecutar PyQt en Python básico en lugar de sin pila.

Por cierto, también pensé que mezclar señales/ranuras con código sin pila sería confuso, ya que son métodos completamente diferentes para resolver problemas de subprocesos múltiples.

¡Buena suerte!

Otros consejos

Si está interesado en todo lo que debido a la optimización de la velocidad:

Es posible que desee comprobar hacia fuera trago des ( Wikipedia aquí ). Google (YouTube debido a que es 100% de Python) está trabajando en un compilador JIT para Python que aumentará su velocidad en 5-10x (llevándolo a velocidades mucho más cerca de Java de la máquina virtual actual). La mejor parte es que trabajará con todo el código Python existente que significa que no tiene que preocuparse con todos los problemas asociados con otros proyectos de optimización de Python.

Espero que si está desarrollando un proyecto lo suficientemente grande como para justificar la necesidad de optimización en un nivel bajo, que estaría bien con el desarrollo en Python normal y luego cambiar fuera de la corriente VM cuando trago descargado sale en producción.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top