Executable du code

Résolu/Fermé
sami1997fr Messages postés 2 Date d'inscription mardi 25 décembre 2018 Statut Membre Dernière intervention 31 décembre 2018 - Modifié le 28 déc. 2018 à 23:16
sami1997fr Messages postés 2 Date d'inscription mardi 25 décembre 2018 Statut Membre Dernière intervention 31 décembre 2018 - 31 déc. 2018 à 13:28
Bonjour,

j'ai créé un code pour une interface mais je n'ai pas réussi à créer son executable j'ai éssaye par plusieurs méthodes mais le probleme c'est que l'interface ne s'affiche pas lorque je crée .exe y a que la fenetre noire du cmd qui s'affiche, par contre quand je l'execute avec IDLE ça marche normal, aidez moi svp !
voici mon code et merci d'avance :
from tkinter import *
from tkinter.ttk import *


from heapq import heappush, heappop
import datetime
import os

"""PARTIE NOIYEUX"""
def recherche(tab):
i=0
for i in range(0,21):

if tab==str(tache[i][0]):
A=[]
A.append(tache[i][1])
A.append(tache[i][2])
return A
""" fonction de dessin de chemine critique """
def draw(lin=[]):
i=0
r=35
for i in range(0,len(lin)-1):
C=[]
B=[]
C=recherche(lin[i])
B=recherche(lin[i+1])
can.create_line(C[0],C[1],B[0],B[1],width=3,fill='red')
can.create_oval(C[0]-r,C[1]-r,C[0]+r,C[1]+r,width=3,outline="red")
can.create_oval(B[0]-r,B[1]-r,B[0]+r,B[1]+r,width=3,outline="red")


def CheminCritique(graph,src,dest,visited=[],distances={},predecessors={}):


if src not in graph:

fen.mainloop()
raise TypeError('Probleme dans la source introuvable ')
if dest not in graph:

fen.mainloop()
raise TypeError('Probleme dans la distination introuvable')

if src == dest:

path=[]
pred=dest
while pred != None:
path.append(pred)
pred=predecessors.get(pred,None)

path.reverse()
label['text']=('le chemine critique passe par les etapes : '+str(path)+"\n"+"duree : "\
+str(distances[dest]*(-1))+" Unite de temps\n")
draw(path)
fen.mainloop()
else :

if not visited:
distances[src]=0

for neighbor in graph[src] :
if neighbor not in visited:
new_distance = distances[src] + graph[src][neighbor]
if new_distance < distances.get(neighbor,float('inf')):
distances[neighbor] = new_distance
predecessors[neighbor] = src

visited.append(src)

unvisited={}
for k in graph:
if k not in visited:
unvisited[k] = distances.get(k,float('inf'))
x=min(unvisited, key=unvisited.get)
CheminCritique(graph,x,dest,visited,distances,predecessors)

def onclick():
can.create_text(95,235,anchor=W,font="Arial",text=" 0")
can.create_text(295,235,anchor=W,font="Arial",text=" 0")
can.create_text(495,385,anchor=W,font="Arial",text=" 0")
can.create_text(895,235,anchor=W,font="Arial",text=" 0")
can.create_text(1095,235,anchor=W,font="Arial",text=" 0")
can.create_text(495,85,anchor=W,font="Arial",text="10")
can.create_text(495,235,anchor=W,font="Arial",text=" 2")
can.create_text(695,135,anchor=W,font="Arial",text=" 4")
can.create_text(695,385,anchor=W,font="Arial",text="1")

can.create_text(80,215,anchor=W,font="Arial",text=" 0")
can.create_text(280,215,anchor=W,font="Arial",text=" 4")
can.create_text(480,65,anchor=W,font="Arial",text=" 5")
can.create_text(480,215,anchor=W,font="Arial",text="10")
can.create_text(480,365,anchor=W,font="Arial",text="11")
can.create_text(680,115,anchor=W,font="Arial",text="14")
can.create_text(680,365,anchor=W,font="Arial",text="15")
can.create_text(880,215,anchor=W,font="Arial",text="19")
can.create_text(1080,215,anchor=W,font="Arial",text="21")

can.create_text(80,255,anchor=W,font="Arial",text="0")
can.create_text(280,255,anchor=W,font="Arial",text="4")
can.create_text(480,105,anchor=W,font="Arial",text="15")
can.create_text(480,255,anchor=W,font="Arial",text="12")
can.create_text(480,405,anchor=W,font="Arial",text="11")
can.create_text(680,155,anchor=W,font="Arial",text="18")
can.create_text(680,405,anchor=W,font="Arial",text="16")
can.create_text(880,255,anchor=W,font="Arial",text="19")
can.create_text(1080,255,anchor=W,font="Arial",text="21")
label1['text']=('Resultat : Le chemin critique est [ A E K M ] ')
CheminCritique(graph,'T0','T8')


if __name__ == "__main__":
#PARTIE DATA

graph = { 'T0': {'T1': -4},
'T1': {'T2': -1,'T3': -6,'T4':-7,'T6':-2},
'T2': {'T5':-3},
'T3': {'T5': -4,'T7': -7},
'T4': {'T6': -4,'T7': -8},
'T5': {'T7': -1},
'T6': {'T7': -3},
'T7': {'T8': -2},
'T8': {}}

tache=[['T0',85,235],["T1",285,235],["T2",485,85],["T3",485,235],["T4",485,385],
["T5",685,135],["T6",685,385],["T7",885,235],["T8",1085,235]]
#PARTIE DE CREATION DE FENETRE

fen=Tk()
fen.geometry("1200x600+50+50")
fen.title("Diagramme de Pert(chemine Critique) ")
fen.resizable(width='false',height='true')
can = Canvas(fen,bg='dark grey',height=450,width=1200,borderwidth=3,cursor='x_cursor')
can.pack()
can.create_line(85,235,285,235,485,85,685,135,885,235,
685,385,485,385,285,235,485,235,885,235,1085,
235,width=2,fill='black')
can.create_line(485,235,685,135,width=2,fill='black')
can.create_line(285,235,685,385,width=2,fill='black')
can.create_line(485,385,885,235,width=2,fill='black')

can.create_text(180,220,anchor=W,font="Arial",text="A 4")
can.create_text(360,150,anchor=W,font="Arial",text="B 1")
can.create_text(360,220,anchor=W,font="Arial",text="C 6")
can.create_text(460,290,anchor=W,font="Arial",text="D 2")
can.create_text(370,335,anchor=W,font="Arial",text="E 7")
can.create_text(570,95 ,anchor=W,font="Arial",text="F 3")
can.create_text(555,180,anchor=W,font="Arial",text="G 4")
can.create_text(620,310,anchor=W,font="Arial",text="K 8")
can.create_text(555,405,anchor=W,font="Arial",text="J 4")
can.create_text(770,335,anchor=W,font="Arial",text="I 3")
can.create_text(650,220,anchor=W,font="Arial",text="H 7")
can.create_text(770,165,anchor=W,font="Arial",text="L 1")
can.create_text(960,220,anchor=W,font="Arial",text="M 2")

can.create_oval(50,200,120,270,fill='white')
can.create_line(60,260,112,210,width=1,fill='black')
can.create_line(60,210,112,260,width=1,fill='black')
can.create_text(60,235,anchor=W,font="Arial",text="T0")


can.create_oval(250,200,320,270,fill='white')
can.create_line(260,260,312,210,width=1,fill='black')
can.create_line(260,210,312,260,width=1,fill='black')
can.create_text(260,235,anchor=W,font="Arial",text="T1")


can.create_oval(450,200,520,270,fill='white')
can.create_line(460,260,512,210,width=1,fill='black')
can.create_line(460,210,512,260,width=1,fill='black')
can.create_text(460,235,anchor=W,font="Arial",text="T3")


can.create_oval(450,50,520,120,fill='white')
can.create_line(460,110,512,60,width=1,fill='black')
can.create_line(460,60,512,110,width=1,fill='black')
can.create_text(460,85,anchor=W,font="Arial",text="T2")


can.create_oval(450,350,520,420,fill='white')
can.create_line(460,410,512,360,width=1,fill='black')
can.create_line(460,360,512,410,width=1,fill='black')
can.create_text(460,385,anchor=W,font="Arial",text="T4")


can.create_oval(650,100,720,170,fill='white')
can.create_line(660,160,712,110,width=1,fill='black')
can.create_line(660,110,712,160,width=1,fill='black')
can.create_text(660,135,anchor=W,font="Arial",text="T5")


can.create_oval(650,350,720,420,fill='white')
can.create_line(660,410,712,360,width=1,fill='black')
can.create_line(660,360,712,410,width=1,fill='black')
can.create_text(660,385,anchor=W,font="Arial",text="T6")


can.create_oval(850,200,920,270,fill='white')
can.create_line(860,260,912,210,width=1,fill='black')
can.create_line(860,210,912,260,width=1,fill='black')
can.create_text(860,235,anchor=W,font="Arial",text="T7")


can.create_oval(1050,200,1120,270,fill='white')
can.create_line(1060,260,1112,210,width=1,fill='black')
can.create_line(1060,210,1112,260,width=1,fill='black')
can.create_text(1060,235,anchor=W,font="Arial",text="T8")

can.create_text(150,20,anchor=W,font="Arial",text="Rang 1")
can.create_text(350,20,anchor=W,font="Arial",text="Rang 2")
can.create_text(550,20,anchor=W,font="Arial",text="Rang 3")
can.create_text(750,20,anchor=W,font="Arial",text="Rang 4")
can.create_text(950,20,anchor=W,font="Arial",text="Rang 5")
can.create_line(50,0,50,30,width=3,fill='black')
can.create_line(250,0,250,30,width=3,fill='black')
can.create_line(450,0,450,30,width=3,fill='black')
can.create_line(650,0,650,30,width=3,fill='black')
can.create_line(850,0,850,30,width=3,fill='black')
can.create_line(1050,0,1050,30,width=3,fill='black')

bou= Button(fen,text='Calculer le chemin critique',cursor='mouse',command=onclick)
bou.place(x='20',y='470')
bou1= Button(fen,text='Fermer',command=fen.destroy).place(x='1100',y='550')

label =Label(fen,text='')
label.place(x='20',y='520')
label1 =Label(fen,text='Resultat :')
label1.place(x='20',y='505')

os.system("pause")
A voir également:

1 réponse

Bonjour.

Remplacer :

os.system("pause") 


Qui n'a strictement rien à faire dans ton programme.

Par :

fen.mainloop()


Et si ce n'est pas ça, merci d'éditer ton sujet en utilisant le bouton <> du forum dans le dessein de garder l'indentation de ton code, chose primordiale en python.
0
sami1997fr Messages postés 2 Date d'inscription mardi 25 décembre 2018 Statut Membre Dernière intervention 31 décembre 2018
31 déc. 2018 à 13:28
Merci beaucoup mon frere ça a marché
Bonne journée
0