je commence tout juste la programmation en python et ai voulu essayer de faire un .exe en standalone en utilisant cx freeze mais je rencontre un probleme avec tkinter. J'ai pu en faire un tout simple avec juste un message par contre.
Voici mes bouts de code:
tkinter2.py:
#!/usr/bin/env python
# -*-coding:Latin-1 -*
import tkinter
base = None
if sys.platform == 'win32':
base="Win32GUI"
TK=Tk()
# fonction appellée lorsque l'utilisateur presse une touche
def clavier(event):
global coords
touche = event.keysym
if touche == "Up":
coords = (coords[0], coords[1] - 10)
elif touche == "Down":
coords = (coords[0], coords[1] + 10)
elif touche == "Right":
coords = (coords[0] + 10, coords[1])
elif touche == "Left":
coords = (coords[0] -10, coords[1])
# changement de coordonnées pour le rectangle
canvas.coords(rectangle, coords[0], coords[1], coords[0]+25, coords[1]+25)
# création du canvas
canvas = Canvas(TK, width=250, height=250, bg="ivory")
# coordonnées initiales
coords = (0, 0)
# création du rectangle
rectangle = canvas.create_rectangle(0,0,25,25,fill="violet")
# ajout du bond sur les touches du clavier
canvas.focus_set()
canvas.bind("<Key>", clavier)
# création du canvas
canvas.pack()
et dans le cmd voici la commande que je fais:
je me mets dans C:\Python34
ensuite je tape: python.exe "Scripts\cxfreeze" "Scripts\tkinter2.py"
Ca a l'air de compiler mais me dit que j'ai des modules manquants et globgalement c'est tkinter. Si je lance mon .exe, j'ai les messages suivants:
Je me mets la ou ca compile (donc dans C:\Python34\dist) et je lance tkinter.exe. Le message d'erreur est:
ImportError: no module name 'Tkinter'
J'utilise python 3.4 et ai installé le bon cx_freeze normalement.
avant de vouloir créer un exe as-tu déja essayé ton programme ? est-ce qu'il fonctionne ?
cx freeze et tkinter
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.