Domanda

Quali esperienze avete con Stackless Python e PyQt?

Problemi sarei felice se la gente si rivolgono:

  1. Compilazione di PyQt per Stackless: fa PyQt deve essere compilato appositamente per Stackless? è la compilazione liscio? problemi con attacchi ecc.

  2. Stabilità:? Eventuali crash inaspettati, si blocca, le pause e gli altri Bizzarrie

  3. Memory Management: nessun accenno di perdite di memoria. confronto di RAM necessaria per le applicazioni Stackless / Plain Vanilla PyQt

  4. Software Engineering Empowerment: molto breve profilo dei modelli di flusso di controllo per le applicazioni PyQt Stackless-alimentati

  5. Lezioni apprese: ogni lezione dolorosa imparato, le trappole da evitare, per affrontare i problemi che si potrebbe avere sperimentato

Be Happy

È stato utile?

Soluzione

Ho provato ad andare su questa strada diversi mesi fa e ho deciso che non ne valeva la pena.

Sono stato in grado di eseguire l'installazione di un binario di PyQt (su Windows) contro una versione Stackless di Python, ma ho scoperto che dovevo andare manualmente e modificare alcuni dei file. Mi stavo un messaggio di errore (scusate, non ricordo cosa fosse), e Google Search ha portato a una soluzione da diversi anni fa. il codice più recente non ha incluso il vecchio correzione, in modo che il cambiamento non è stato troppo difficile e (se non ricordo male) era in Python, quindi non è stato necessario ricompilazione.

Ma che è stato un insuccesso per me. aggiornamenti Qt escono regolarmente, così come gli aggiornamenti di PyQt, e non volevo essere continuamente che fissa il codice. Stackless e PyQt non sono semplicemente utilizzati insieme abbastanza per essere controllati accuratamente. Ho trovato il rischio di problemi difficili da eseguire il debug piuttosto elevati. Questo è particolarmente vero dato l'autore di stackless si è spostato a PyPy. Mi scuso in anticipo - vorrei avere i riferimenti che ho trovato per l'autore fermare lo sviluppo su stackless pitone e maggiori dettagli sugli errori che ho dovuto risolvere -. Non mi aspettavo a rigurgitare i dettagli su Stack Overflow

Così ho scelto di correre su una PyQt Python vaniglia invece di stackless.

A proposito, ho anche pensato che segnali di mescolamento / slot con codice stackless sarebbero confusione, in quanto sono completamente diversi metodi per risolvere i problemi di multithreading.

In bocca al lupo!

Altri suggerimenti

Se siete interessati a tutto ciò che a causa di ottimizzazione della velocità:

Si consiglia di controllare le a vuoto Rondine ( Wikipedia qui ). Google (a causa di YouTube essere al 100% Python) sta lavorando su un compilatore JIT per Python che aumenterà la sua velocità da 5-10x (portandolo molto più vicino alla velocità di Java che la macchina virtuale corrente). La parte migliore è che funziona con tutto il codice Python esistente che significa che non c'è bisogno di agitarsi con tutti i problemi connessi con altri progetti di ottimizzazione Python.

Mi aspetto che se si sta sviluppando un progetto di grandi dimensioni abbastanza da giustificare la necessità di ottimizzazione a un livello basso, devi essere OK con lo sviluppo in Python normale e poi cambiando fuori della corrente VM quando vuoto rondine esce in produzione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top