Donc, vous voulez écrire une application de bureau en Python, Codel

Voici un aperçu des meilleurs outils et les meilleures ressources pour la création d'applications de bureau en Python.

Tout d'abord. Vous pouvez construire de grandes applications de bureau en Python, et certains sont largement utilisés (comme Dropbox). Mais vous devez trouver votre propre façon beaucoup plus que vous le feriez avec Microsoft SDKs ou de Apple. Le côté positif est que, avec un peu de travail sur le terrain pour emballer de manière appropriée, il est tout à fait possible d'écrire une application Python qui fonctionne sur toutes les plateformes.







boîtes à outils GUI

La première chose que vous devez choisir est une boîte à outils de l'interface graphique.

Donc, vous voulez écrire une application de bureau en Python, Codel

Qt Designer en action

Quelques alternatives je ne recommanderais pas à moins que vous ayez une raison de les préférer: GTK est populaire sur Linux, mais il semble laid sur d'autres plates-formes. Les liaisons de PyGTK anciens ont une excellente documentation; le plus récent système de PyGObject, qui prend en charge les versions récentes de GTK et Python, n'a pas (même si ça va mieux). WX semble avoir une bonne communauté, mais le développement est lent projets et nouveaux qui pourraient l'ont utilisé la plupart du temps semblent maintenant choisir Qt.

Emballage et distribution

Ceci est probablement la plus rude partie de faire une application en Python. Vous pouvez facilement distribuer des outils pour les développeurs que les paquets Python à installer à l'aide pip, mais les utilisateurs finaux ne disposent généralement pas de Python et pip déjà mis en place. paquets Python peuvent aussi ne pas dépendre de quelque chose comme Qt. Il y a plusieurs façons d'emballer votre application et ses dépendances:







emballage Linux

Bien que certains des outils de gel peut construire les binaires Linux, le meilleur moyen de distribuer le logiciel est de faire un paquet contenant seulement votre application, qui a des dépendances sur Python et les bibliothèques utilisées par votre application. Donc, votre colis ne contient pas tout ce qu'il a besoin, mais il indique le gestionnaire de paquets ce que d'autres pièces dont il a besoin installé.

Malheureusement, les procédures de préparation de ces sont assez complexes, et les distributions Linux ne sont toujours pas un format de paquet commun. Les principaux sont les paquets deb, utilisés par Debian, Ubuntu et Mint, et les paquets RPM, utilisé par Fedora et Red Hat. Je ne sais pas d'un bon guide simple pour l'emballage des applications Python pour soit - si vous trouvez un ou écrivez un, laissez-moi savoir.

Vous pouvez amener les utilisateurs à télécharger et installer votre package, mais si vous voulez recevoir des mises à jour via le gestionnaire de paquets, vous aurez besoin d'héberger dans un dépôt. Envoi de votre package aux principaux référentiels le rend plus facile pour les utilisateurs de la distribution pour installer, mais il doit répondre aux normes de qualité de distro, et vous pouvez généralement pas pousser de nouvelles fonctionnalités communiqués aux personnes, sauf si leur mise à niveau toute la distribution. Certaines distributions offrent l'hébergement pour les prises en pension personnelle: PPA de Ubuntu, ou les dépôts de Fedora Fedorapeople. Vous pouvez également configurer un référentiel sur votre propre serveur.

Si vous ne voulez pas penser à tout ça, juste faire un tarball de votre application, et expliquer aux utilisateurs de Linux à côté du téléchargement ce qu'il faut.

Divers

  • Threading. Si votre application ne prend plus de temps que tout d'un dixième de seconde, vous devriez le faire dans un thread d'arrière-plan, de sorte que votre interface utilisateur ne gèle pas. Assurez-vous d'interagir uniquement avec des éléments de l'interface graphique du thread principal, ou vous pouvez obtenir segfaults. GIL Python est pas un gros problème ici: le thread d'interface utilisateur ne devrait pas avoir beaucoup de temps de traitement de Python.
  • Mises à jour. Esky est un cadre pour la mise à jour des applications Python congelés. Je ne l'ai pas essayé, mais il semble intéressant.






Articles Liés