Stackless Python e PyQt
-
20-09-2019 - |
Pergunta
Quais as experiências que você tem com Stackless Python e PyQt?
Problemas eu ficaria feliz se as pessoas endereço:
Compilação de PyQt para Stackless:não PyQt precisa ser compilado especialmente para Stackless?é a compilação suave?problemas com ligações, etc.
Estabilidade:quaisquer falhas inesperadas, congela, pausas e outros weirdities?
Gerenciamento De Memória:qualquer sinal de vazamento de memória.comparação de RAM necessária para um Stackless/Plain Vanilla PyQt aplicações
Engenharia De Software Empoderamento:muito breve esboço do fluxo-de-modelos de controle para Stackless-alimentado PyQt aplicações
Lições aprendidas:qualquer dolorosa lição aprendida, as armadilhas a serem evitadas, problemas para resolver, você pode ter experimentado
Ser Feliz
Solução
Eu tentei ir por este caminho há vários meses e decidi que não valia a pena o esforço.
Eu era capaz de executar uma instalação de binários de PyQt (no Windows), contra o stackless versão do Python, mas eu achei que eu tinha que ir manualmente e alterar alguns dos arquivos.Eu estava recebendo uma mensagem de erro (desculpe, esqueci o que era), e a pesquisa do google levou a uma solução de há vários anos atrás.Código mais recente não incluem a antiga correção, para que a alteração não foi muito difícil, e (se me lembro corretamente) foi em python, então não foi necessário recompilar.
Mas que foi um disjuntor do negócio para mim.Qt as atualizações saem regularmente, como fazer atualizações para o PyQt, e eu não quero ser continuamente corrigindo o código.Stackless e PyQt simplesmente não usado suficiente para ser avaliada.Eu encontrei o risco de difícil depurar problemas muito alta.Isto é especialmente verdadeiro dado o autor de stackless se mudou para PyPy.Deixe-me pedir desculpas antecipadamente - eu gostaria de ter as referências que encontrei para o autor parar de desenvolvimento em stackless python e mais detalhes sobre os erros tive que corrigir - eu não estava esperando a regurgitar os detalhes sobre o Estouro de Pilha.
Então, eu escolhi executar PyQt em um de baunilha Python em vez de stackless.
BTW, eu também pensei que a mistura de sinais/slots com stackless código seria confuso, como eles são completamente diferentes métodos de solução de multi-threading problemas.
Boa sorte!
Outras dicas
Se você estiver interessado em tudo isso devido à otimização de velocidade:
Você pode querer conferir Setwallow inadimista ( Wikipedia aqui ). O Google (por causa do YouTube ser 100% Python) está trabalhando em um compilador JIT para Python que aumentará sua velocidade em 5-10x (aproximando-o muito mais perto das velocidades Java do que a máquina virtual atual). A melhor parte é que isso funcionará com todo o código python existente O que significa que você não precisa se preocupar com todos os problemas associados a outros projetos de otimização do Python.
Espero que, se você estiver desenvolvendo um projeto grande o suficiente para justificar a necessidade de otimização em um nível baixo, você estaria bem em desenvolver em Python normal e depois mudar da VM atual quando a Swallow não amadrenidade for lançada em produção.