Question

Quelles expériences avez-vous avec Stackless Python et PyQt?

Questions je serais heureux si l'adresse des gens:

  1. Compilation de PyQt pour Stackless: ne PyQt besoin d'être compilé spécialement pour Stackless? est la compilation lisse? problèmes avec fixations etc.

  2. Stabilité: aucun crash inattendu, se fige, des pauses et d'autres weirdities

  3. Gestion de la mémoire: les conseils des fuites de mémoire. comparaison de RAM nécessaire pour une application Vanilla Stackless / Plaine PyQt

  4. Software Engineering Empowerment: contours très court des modèles de flux de contrôle pour les applications fonctionnant sous PyQt Stackless

  5. Leçons apprises: une leçon douloureuse a appris, les pièges à éviter, des problèmes pour vous attaquer peut-être connu

Be Happy

Était-ce utile?

La solution

J'ai essayé de suivre cette voie il y a plusieurs mois et a décidé qu'il ne valait pas la peine.

Je suis en mesure d'exécuter une installation binaire de PyQt (sous Windows) contre une version stackless de Python, mais je trouve que je devais aller manuellement et modifier certains des fichiers. Je recevais un message d'erreur (désolé, je ne sais plus ce qu'il était), et la recherche google conduit à une solution à partir il y a plusieurs années. Code récent n'a pas inclus l'ancien correctif, de sorte que le changement n'a pas été trop difficile et (si je me souviens bien), il était en python, donc pas de recompilation était nécessaire.

Mais c'était un facteur de rupture pour moi. mises à jour Qt sont régulièrement, comme les mises à jour de PyQt, et je ne voulais pas être fixer en permanence le code. Stackless et PyQt sont tout simplement pas suffisamment utilisés ensemble pour vérifier soigneusement. J'ai trouvé le risque de difficile à des problèmes de débogage assez élevé. Cela est particulièrement vrai étant donné l'auteur de stackless est passé à PyPy. Permettez-moi présente mes excuses à l'avance - je voudrais avoir les références que j'ai trouvé pour l'auteur arrêter le développement sur python stackless et plus de détails sur les erreurs que je devais corriger -. Je ne m'y attendais pas à régurgiter les détails sur Stack Overflow

J'ai donc choisi de courir PyQt sur Python à la vanille au lieu de stackless.

BTW, je pense également que les signaux / slots avec code stackless mélange serait source de confusion, car ils sont des méthodes complètement différentes de la résolution des problèmes multi-threading.

Bonne chance!

Autres conseils

Si vous êtes intéressé par tout ce en raison de l'optimisation de la vitesse:

Vous pouvez consulter hirondel ( Wikipédia ). Google (à cause de YouTube étant 100% Python) travaille sur un compilateur JIT pour Python qui augmentera sa vitesse par 5-10x (ce qui porte beaucoup plus proche de vitesses Java que la machine virtuelle en cours). La meilleure partie est que travaillera avec l'ensemble du code Python existant qui signifie que vous ne devez pas tracasser avec tous les problèmes associés à d'autres projets d'optimisation de Python.

Je pense que si vous développez un projet suffisamment important pour justifier la nécessité d'une optimisation à un niveau bas, vous seriez OK avec le développement en Python normal et puis changer de la machine virtuelle en cours lorsque hirondel sort en production.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top