web-dev-qa-db-fra.com

Est-il possible de créer une version Windows de mes applications python / gtk3?

J'ai récemment fait pas mal de code en utilisant rapidement GTK 3. C'est génial et je suis content de certains résultats, mais j'aimerais maintenant partager mes applications avec des utilisateurs de Windows ou de Mac. Existe-t-il un moyen quelconque de créer un installateur Windows, ou devrais-je me tenir la main pendant qu’ils tentent d’installer les différentes bibliothèques, etc.? Merci d'avance.

3
user86684

GTK3 est la partie la plus difficile ... j'y reviendrai dans un instant ...

Terminer un projet Python pour Windows est en fait assez simple si vous utilisez quelque chose comme py2exe ou pyinstaller . Il existe également des options commerciales, mais cela fait si longtemps que je ne me souviens plus de leurs noms.

Dans les deux cas, vous créez un environnement Python complet avec tout ce dont vous avez besoin. L’utilisateur l’exécute.

Revenons maintenant à la boîte à outils. GTK3 peut être installé sur Windows mais ce n'est pas une boîte à outils multiplateforme florissante ou mature. Il y a quelques questions à ce sujet sur StackOverflow mais je ne sais pas quelles liaisons elles fournissent. Ils ne sont probablement pas adaptés à Python mais j'espère me tromper. En bref, vous ne voulez probablement pas utiliser GTK3 pour une application multiplate-forme.

Passé cela, vous êtes à la recherche d'une alternative. Trois options populaires:

6
Oli

J'ai ajouté des instructions de construction pour win32 sur la page gnome live de PyGobject https://wiki.gnome.org/PyGObject#Building_on_Win32_with_cx_freeze

3
gianmt

Vous pouvez créer des packages .deb, où, si des dépendances sont impliquées, elles peuvent être spécifiées, tout comme un package .deb que vous installez normalement.

Faire un paquet n'est pas si simple qu'on pourrait vous apprendre ici en 1 ou 2 commandes, vous devez lire quelque chose à ce sujet, je vous recommande donc de lire ceci:

http://developer.ubuntu.com/packaging/html/

Informations de base de ce site:

Commencer un paquet

bzr-builddeb inclut un plugin pour créer un nouveau package à partir d'un modèle. Le plugin est un wrapper autour de la commande dh_make. Vous devriez déjà en avoir si vous avez installé packaging-dev. Exécutez la commande en indiquant le nom du paquet, le numéro de version et le chemin d'accès à l'archive en amont:

$ Sudo apt-get install dh-make
$ cd ..
$ bzr dh-make hello 2.7 hello-2.7.tar.gz

Quand il demande quel type de type de paquet s est pour un seul binaire. Cela importera le code dans une branche et ajoutera le répertoire debian/packaging. Regardez le contenu. La plupart des fichiers ajoutés ne sont nécessaires que pour les packages spécialisés (tels que les modules Emacs). Vous pouvez donc commencer par supprimer les exemples de fichiers facultatifs:

$ cd hello/debian
$ rm *ex *EX

Vous devez maintenant personnaliser chacun des fichiers.

Dans debian/changelog, remplacez le numéro de version par une version Ubuntu: 2.7-0ubuntu1 (version amont 2.7, version Debian 0, version Ubuntu 1). Également changer instable à la version de développement actuelle Ubuntu telle que précise.

Une grande partie du travail de construction du paquet est faite par une série de scripts appelée debhelper. Le comportement exact de debhelper change avec les nouvelles versions principales. Le fichier compat indique à la version à utiliser. En règle générale, vous souhaiterez définir la version 8 la plus récente.

le contrôle contient toutes les métadonnées du paquet. Le premier paragraphe décrit le paquet source. Les paragraphes suivants et suivants décrivent les packages binaires à construire. Nous devrons ajouter les packages nécessaires à la compilation de l'application pour Build-Depends: Pour bonjour, assurez-vous qu'il comprend au moins:

Build-Depends: debhelper (> = 8.0.0) Vous devrez également fournir une description du programme dans le champ Description:.

les droits d'auteur doivent être renseignés pour suivre la licence de la source en amont. Selon le fichier hello/COPYING, il s’agit de GNU GPL 3 ou version ultérieure.

docs contient tous les fichiers de documentation en amont qui, selon vous, devraient être inclus dans le package final.

README.source et README.Debian ne sont nécessaires que si votre paquet contient des fonctions non standard, nous ne pouvons donc pas les supprimer.

source/format peut être laissé tel quel, cela décrit le format de version du paquet source et devrait être 3.0 (quilt).

règles est le fichier le plus complexe. C'est un Makefile qui compile le code et le transforme en un paquet binaire. Heureusement, la plupart du travail est automatiquement effectué ces jours-ci par debhelper 7, de sorte que la cible universelle% Makefile exécute simplement le script dh, qui exécutera tout ce qui est nécessaire.

Tous ces fichiers sont expliqués plus en détail dans la vue d'ensemble de l'article du répertoire debian.

Enfin, validez le code dans votre branche d’emballage:

$ bzr commit -m "Initial commit of Debian packaging."

Construire le paquet

Nous devons maintenant vérifier que notre package compile et compile le package binaire .deb avec succès:

$ bzr builddeb -- -us -uc
$ cd ../../

bzr builddeb est une commande permettant de générer le package à son emplacement actuel. Le -us -uc lui dit qu'il n'est pas nécessaire que GPG signe la compilation. Le résultat sera placé dans ...

Vous pouvez voir le contenu du paquet avec:

$ lesspipe hello_2.7-0ubuntu1_AMD64.deb

Installez le paquet et vérifiez que cela fonctionne:

$ Sudo dpkg --install hello_2.7-0ubuntu1_AMD64.deb

Prochaines étapes

Même s'il construit le paquet binaire .deb, votre paquetage peut contenir des bogues. De nombreuses erreurs peuvent être automatiquement détectées par notre outil lintian, qui peut être exécuté à la fois sur le fichier de métadonnées .dsc source et sur le package binaire .deb:

$ lintian hello_2.7-0ubuntu1.dsc
$ lintian hello_2.7-0ubuntu1_AMD64.deb

Une description de chacun des problèmes signalés est disponible sur le site Web de Lintian.

Après avoir corrigé l’emballage, vous pouvez reconstruire en utilisant -nc "no clean" sans avoir à construire à partir de zéro:

$ bzr builddeb -- -nc

Après avoir vérifié que le paquet est construit localement, vous devez vous assurer qu'il repose sur un système propre utilisant pbuilder. Si vous n'avez pas encore configuré pbuilder-dist, faites-le maintenant:

$ bzr builddeb -S
$ cd ../build-area
$ pbuilder-dist precise build hello_2.7-0ubuntu1.dsc

Lorsque vous êtes satisfait de votre colis, vous voudrez que les autres le passent en revue. Vous pouvez télécharger la branche sur le tableau de bord pour révision:

$ bzr Push lp:~<lp-username>/+junk/hello-package

Le téléchargement sur une archive de paquetage personnel (PPA) garantira sa construction et vous permettra, à vous-même et à d’autres personnes, de tester les paquets binaires. Vous devrez configurer un PPA dans Launchad puis télécharger avec dput:

$ dput ppa:<lp-username> hello_2.7-0ubuntu1.changes
0
LnxSlck

Il existe un outil py2exe qui convertit un programme python en un exécutable autonome de Windows (y compris l'interprète python), ce que je pense être ce que vous recherchez. .

Cette page mentionne spécifiquement le packaging d'applications Gtk avec cet outil.

N'aide pas avec OS X bien que j'en ai peur.

0
chronitis