Question

Python fonctionne sur plusieurs plates-formes et peut être utilisé pour les applications de bureau et Web. Je conclus donc qu'il existe un moyen de le compiler en un exécutable pour Mac, Windows et Linux.

Le problème étant que je ne sais pas par où commencer ni comment écrire une interface graphique avec, quelqu'un peut-il m'éclairer à ce sujet et m'orienter dans la bonne direction, s'il vous plaît ?

Était-ce utile?

La solution

Vous aurez d’abord besoin d’une bibliothèque GUI avec des liaisons Python, puis (si vous le souhaitez) d’un programme qui convertira vos scripts Python en exécutables autonomes.

Bibliothèques GUI multiplateformes avec liaisons Python (Windows, Linux, Mac)

Bien sûr, il y en a beaucoup, mais les plus populaires que j'ai vus dans la nature sont :

La liste complète est à http://wiki.python.org/moin/GuiProgramming

Exécutable unique (toutes plateformes)

Exécutable unique (Windows)

  • py2exe - était le plus populaire

Exécutable unique (Linux)

  • Geler - fonctionne de la même manière que py2exe mais cible la plateforme Linux

Exécutable unique (Mac)

  • py2app - encore une fois, fonctionne comme py2exe mais cible Mac OS

Autres conseils

Un autre système (pas encore mentionné dans la réponse acceptée) est PyInstaller, qui a fonctionné pour un de mes projets PyQt alors que py2exe ne le ferait pas.Je l'ai trouvé plus facile à utiliser.

http://www.pyinstaller.org/

Pyinstaller est basé sur le programme d'installation Python de Gordon McMillan.Ce qui n'est plus disponible.

Un outil alternatif à py2exe est bbgeler qui génère des exécutables pour Windows et Linux.Il est plus récent que py2exe et gère assez bien les œufs.J'ai trouvé que cela fonctionne comme par magie mieux sans configuration pour une grande variété d'applications.

Il y a aussi PyGTK, qui est essentiellement un wrapper Python pour Gnome Toolkit.J'ai trouvé qu'il était plus facile de comprendre que Tkinter, venant de pratiquement aucune connaissance de la programmation GUI auparavant.Cela fonctionne plutôt bien et propose de bons tutoriels.Malheureusement, il n'existe pas encore de programme d'installation pour Python 2.6 pour Windows, et ce ne sera peut-être pas le cas avant un certain temps.

Étant donné que Python est désormais installé par défaut sur presque tous les systèmes d’exploitation non Windows, la seule chose dont vous devez vraiment vous assurer est que toutes les bibliothèques non standard que vous utilisez sont installées.

Cela dit, il est possible de créer des exécutables incluant l'interpréteur Python et toutes les bibliothèques que vous utilisez.Cependant, cela créera probablement un gros exécutable.

MacOS X inclut même la prise en charge dans l'IDE Xcode pour la création d'applications GUI entièrement autonomes.Ceux-ci peuvent être exécutés par n’importe quel utilisateur exécutant OS X.

Pour l'interface graphique elle-même :

PyQT c'est à peu près la référence.

Une autre façon de développer une interface utilisateur rapide est d'écrire une application web, l'exécuter localement et afficher l'application dans le navigateur.

De plus, si vous optez pour l'option Tkinter suggérée par lubos hasko vous voudrez peut-être essayer portablepy pour faire fonctionner votre application sur l'environnement Windows sans Python.

Je ne suis pas sûr que ce soit la meilleure façon de le faire, mais lorsque je déploie des applications Ruby GUI (pas Python, mais a le même "problème" en ce qui concerne les .exe) sur Windows, j'écris simplement un court lanceur en C# qui fait appel à mon script principal.Il se compile en un exécutable, et j'ai ensuite un exécutable d'application.

# I'd use tkinter for python 3

import tkinter

tk = tkinter.Tk()
tk.geometry("400x300+500+300")
l = Label(tk,text="")
l.pack()
e = Entry(tk)
e.pack()

def click():
    e['text'] = 'You clicked the button'

b = Button(tk,text="Click me",command=click)
b.pack()

tk.mainloop()

# After this I would you py2exe
# search for the use of this module on stakoverflow
# otherwise I could edit this to let you know how to do it

py2exe

Ensuite, vous devez utiliser py2exe, par exemple, pour regrouper dans un seul dossier tous les fichiers nécessaires à l'exécution de l'application, même si l'utilisateur n'a pas python sur son PC (je parle de Windows...pour le système d'exploitation Apple, il n'y a pas besoin d'un fichier exécutable, je pense, car il contient Python sans avoir besoin de l'installer.

Créer ce fichier

1) Créez un fichier setup.py

avec ce code :

from distutils.core import setup
import py2exe

setup(console=['l4h.py'])

enregistre-le dans un dossier

2) Placez votre programme dans le même dossier que setup.py mettre dans ce dossier le programme que vous voulez rendre distribuable:c'est à dire :l4h.py

ps :changez le nom du fichier (de l4h à ce que vous voulez, c'est un exemple)

3) Exécutez cmd à partir de ce dossier (sur le dossier, faites un clic droit + maj et choisissez démarrer cmd ici)
4) écrivez dans cmd :>python setup.py py2exe
5) dans le dossier dist se trouvent tous les fichiers dont vous avez besoin
6) vous pouvez le compresser et le distribuer

Pyinstaller

Installez-le depuis cmd

**

pip installer pyinstaller

**

Exécutez-le à partir du cmd du dossier où se trouve le fichier

**

fichier pyinstaller.py

**

PySimpleGUI encapsule tkinter et fonctionne sur Python 3 et 2.7.Il fonctionne également sur Qt, WxPython et dans un navigateur Web, en utilisant le même code source pour toutes les plateformes.

Vous pouvez créer des interfaces graphiques personnalisées qui utilisent tous les mêmes widgets que vous trouvez dans tkinter (curseurs, cases à cocher, boutons radio, ...).Le code a tendance à être très compact et lisible.

#!/usr/bin/env python
import sys
if sys.version_info[0] >= 3:
    import PySimpleGUI as sg
else:
    import PySimpleGUI27 as sg

layout = [[ sg.Text('My Window') ],
          [ sg.Button('OK')]]

window = sg.Window('My window').Layout(layout)
button, value = window.Read()

Image created from posted PySimpleGUI code

Comme expliqué dans le Documentation PySimpleGUI, à construire le fichier .EXE vous courez:

pyinstaller -wF MonGUIProgram.py

Vous n'avez pas besoin de compiler python pour Mac/Windows/Linux.C'est un langage interprété, il vous suffit donc d'installer l'interpréteur Python sur le système de votre choix (il est disponible pour les trois plateformes).

Quant à une bibliothèque GUI qui fonctionne sur plusieurs plates-formes, celle de Python Tk/Tcl La bibliothèque de widgets fonctionne très bien et je pense qu'elle est suffisamment multiplateforme.

Tkinter est l'interface python pour Tk/Tcl

Depuis la page Web du projet Python :

Tkinter n'est pas le seul GuiProgramming boîte à outils pour Python.Il s'agit toutefois de la le plus couramment utilisé un, et presque le seulement un qui est portable entre Unix, Mac et Windows

Vous pouvez utiliser appJar pour le développement de base de l'interface graphique.

from appJar import gui

num=1

def myfcn(btnName):   
    global num
    num +=1
    win.setLabel("mylabel", num)

win = gui('Test')

win.addButtons(["Set"],  [myfcn])
win.addLabel("mylabel", "Press the Button")

win.go()

GUI when running

Voir la documentation sur site appJar.

L'installation se fait avec pip install appjar à partir de la ligne de commande.

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