Problème d'éxécution d'un script Python
RésoluBonjour,
Lors de l'essaie de ce script, le message que j avais initialement rempli : Une erreur s'est produite.... s'affiche. Cela quand je decide de télécharger le pdf sous le label de Print. C'est donc la fonction print_paper qui ne fonctionne pas je pense.
Pouvez vous m'aider ?
Je vous remercie.
Cordialement.
from tkinter import * import qrcode from tkinter import filedialog from tkinter import messagebox import webbrowser import os window = Tk() def getEntry(): res = URL_1.get() print(res) img = qrcode.make(res) img.save(name_url.get() + ".png") def clear(): URL_1.delete("0","end") name_url.delete("0","end") def window_quit(): window.destroy() def open_module(): filename = filedialog.askopenfilename(initialdir = "/", title = "Select a File", filetypes = (("Text files", "*.txt*"), ("all files", "*.*"))) label_file_explorer.configure(text="File Opened: "+filename) def print_paper(): try: filepath = filedialog.asksaveasfilename(defaultextension=".pdf", filetypes=[("PDF files", "*.pdf")]) if filepath: canvas = window.Canvas(root, bg="blue") canvas.pack(fill=window.BOTH, expand=True) canvas.postscript(file=filepath, colormode='color') messagebox.showinfo("Succès", "Le fichier a été enregistré avec succès.") except Exception as e: messagebox.showerror("Erreur", "Une erreur est survenue lors de l'enregistrement du fichier.") def show_qrcode(): img = qrcode.make(URL_1.get()) img_name = name_url.get() + ".png" img.save(img_name) pimg = PhotoImage(file=img_name) qrcode_label.qrcode_img = pimg qrcode_label['image'] = pimg def help_training(): webbrowser.open_new("file:///D:/Qr%20Code/training%20help.html") window.title("QR Code Generator") window.geometry("800x600") window.config(background="blue") window.iconbitmap("D:/Qr Code/logo.ico") label_title = Label(window, text="QR Code Generator", font=("Arial", 20), bg="blue", fg="white") label_title.pack() # créer une entrée pr donner l'URL URL_label = Label(window, text = "URL : ", font=("Arial", 10), bg="blue") URL_label.place( x = 50, y = 50) URL_1 = Entry(window) URL_1.place(x = 50, y = 80) # créer une entrée pr donner le nom du QR Code name_label = Label(window, text = "URL's name :", font=("Arial", 10), bg="blue") name_label.place( x = 50, y = 110) name_url = Entry(window) name_url.place(x = 50, y = 140) Button_Confirm = Button(window, height=1, width=10, text="Confirm", command=show_qrcode) Button_Confirm.place(x = 50, y = 190) qrcode_label = Label(window, bg="blue") qrcode_label.place(x=450, y=80) # créer un menu menu_bar = Menu(window) file_menu = Menu(menu_bar, tearoff=0) menu_bar.add_cascade(label="File", menu=file_menu) file_menu.add_command(label="New", command=clear) file_menu.add_command(label="Print", command=print_paper) options_menu = Menu(menu_bar, tearoff=0) menu_bar.add_cascade(label="Options", menu=options_menu) options_menu.add_command(label="Quit", command=window_quit) help_menu = Menu(menu_bar, tearoff=0) menu_bar.add_cascade(label="Help", menu=help_menu) help_menu.add_command(label="Training", command=help_training) #config fenetre pour add menu bar window.config(menu=menu_bar) window.mainloop()
- Problème d'éxécution d'un script Python
- Script vidéo youtube - Guide
- Citizen code python avis - Accueil - Outils
- Mas script - Accueil - Windows
- Ghost script - Télécharger - Polices de caractères
- Execution du script d'installation microsoft vc redistributable - Forum Jeux vidéo
2 réponses
Salut, c'est bien d'utiliser les exceptions, mais là on ne sait quelle erreur est chopée. Affiche le type de l'exception attrapée, ou plus simple un print de e.
Bonjour,
Contrairement à ce que dit claplotis #3, chez moi la fonction filedialog.asksaveasfilename retourne bien une chaîne de caractère.
from tkinter import filedialog filename = filedialog.asksaveasfilename( title="Sélectionner, le fichier", filetypes=[("Fichier PDF", "*.pdf")] ) print(filename, type(filename)) # Exemple: /home/tata/toto.pdf <class 'str'>
Le problème vient selon moi de la commande système que tu veux ensuite exécuter. Je devine que tu veux imprimer quelque chose dans un fichier pdf, mais tu ne précise pas quoi.
D'ailleurs si je lance lance dans un terminal une commande du genre :
lpr -P PDF -o fit-to-page toto.pdf
... j'obtiens :
lpr: Error - The printer or class does not exist.
Donc pour avancer, ma question est assez simple :-) Quel est le but de ta fonction print_paper ?
Est-ce que le but est de générer un pdf à partir des données saisies (voir l'autre discussion que tu as lancée) ?
Bonne chance
Bonjour, merci mais après des recherches j'ai enlevé cette exception pour la remplacer par une ligne plus courte et plus simple.
Problème : cela ne résous pas le problème de départ !
Peut-être manque t-il une information ?
Cdt
L'exception est toujours là, sauf que tu ne cherches plus à l'attraper...
As-tu regardé ce que valait filename ?
Il contient un objet TextIOWrapper.
https://docs.python.org/3/library/io.html#io.TextIOWrapper
Bref, l'objet usuel lorsqu'on ouvre un fichier.
Donc, je pense que tu cherches à fournir à la commande système lpr le path du fichier ? filename.name donc.
En revanche je ne sais ce que fais cette commande lpr ni les arguments à fournir.
Merci beaucoup.
Mais la je sais pas du tout quoi faire donc je pense je vais faire autrement.
Si vous avez des idées je suis preneur !
Merci beaucoup en tout cas pour l'attention que vous y portez.
Cdt