Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

lancer un prg par un clic ds l'explorateur ?

2 réponses
Avatar
alainL
Bonsoir,
Je me fais la main avec de petits bouts de prog.
Il y a un truc (hélas, pas qu'un!) que je ne comprends pas: ces deux prog
semblent utiliser le meme objet et sont ts les deux enregistrés en xxx.pyw.
Si je les lance depuis l'explorateur de win xp2, l'un part, l'autre non !
(ils tournent ts les deux depuis Python-IDLE)
Je vous mets les deux petits bouts de code. Si vous pouvez me dire ce qui
fait la différence ???
Merci .
_______________________________________________________________________________

# ne s'ouvre pas :

from Tkinter import*

fen1= Tk()

can1 =Canvas(fen1, width=600, height=451, bg='black')
photo =PhotoImage(file='Agenda.gif')
item = can1.create_image(300,225, image=photo)
can1.pack()

can1.create_text(140, 100, text="Ce texte écrit sur le canevas")

fen1.mainloop()
_____________________________________________________________________

# s'ouvre :

from Tkinter import *

fen1 = Tk()
a=1
f=open('E:/VisualBasic/Progr_en_VB/Agenda/Fetes.txt','r')
while a<50 :
t=f.readline()
ladate=t.split(',')[2]
txt = Label(fen1, text=ladate)
txt.grid(row =a, sticky =W)
a=a+1

f.close()

fen1.mainloop()
_____________________________________________________________________________________

2 réponses

Avatar
Pierre Maurette
Bonsoir,
Je me fais la main avec de petits bouts de prog.
Il y a un truc (hélas, pas qu'un!) que je ne comprends pas: ces deux prog
semblent utiliser le meme objet et sont ts les deux enregistrés en xxx.pyw.
Si je les lance depuis l'explorateur de win xp2, l'un part, l'autre non !
(ils tournent ts les deux depuis Python-IDLE)
Je vous mets les deux petits bouts de code. Si vous pouvez me dire ce qui
fait la différence ???


Sans doute le 'é' de "Ce texte écrit sur le canevas"

Merci .
_______________________________________________________________________________

# ne s'ouvre pas :

from Tkinter import*

fen1= Tk()

can1 Ênvas(fen1, width`0, heightE1, bg='black')
photo =PhotoImage(file='Agenda.gif')
item = can1.create_image(300,225, image=photo)
can1.pack()

can1.create_text(140, 100, text="Ce texte écrit sur le canevas")

fen1.mainloop()
_____________________________________________________________________

# s'ouvre :

from Tkinter import *

fen1 = Tk()
a=1
f=open('E:/VisualBasic/Progr_en_VB/Agenda/Fetes.txt','r')
while a<50 :
t=f.readline()
ladate=t.split(',')[2]
txt = Label(fen1, text=ladate)
txt.grid(row =a, sticky =W)
a=a+1


Hum. Pourquoi pas plutôt:

lignes = f.readlines()
for ligne in lignes:
etc.


f.close()

fen1.mainloop()
_____________________________________________________________________________________



Vous ne devriez pas surtout en phase d'apprentissage lancer vos scripts
par double-clic. Ceci dit, il est normal sur un programme qui
fonctionne de tester ce lancement direct, c'est ce que j'ai fait
également sur mes premières lignes avec tkInter...

Quand vous lancez par double-clic, les erreurs survenues avant
fen1.mainloop() n'apparaissent pas, si vous lancez avec pythonw.exe, ou
apparaissent de façon fugitive dans une fenêtre qui se ferme
immédiatement si vous lancez avec python.exe.

Vous devriez donc lancer en ligne de commande (une invite de commande
ouverte dans le dossier de vos sources, par exemple). Et vous lancez
par python, et non pas par pythonw qui fait donc taire les erreurs.
Puis vous passez à pythonw quand ça fonctionne, et enfin au
double-clic.
Ici, vous auriez eu un truc genre:

python 2.5:
SyntaxError: Non-ASCII character 'xe9' in file ... on line .., but no
encoding declared; see http://www.python.org/peps/pep-0263.html for
details

python 2.4:
sys:1: DeprecationWarning: Non-ASCII character 'xe9' in file
C:Documents and SettingsAdministrator.XP64Desktopt3.pyw on line 12,
but no encoding declared; see http://www.python.org/peps/pep-0263.html
for details

Vous auriez alors ajouté en tête de fichier une ligne comme:

# -*- coding: iso-8859-1 -*-

et tout aurait fonctionné.

Je connais mal IDLE, mais il semble qu'il lance les scripts avec son
propre encoding. Ce qui fait que votre test fonctionnait à partir de
IDLE.

J'utilise Eclipse, qui semble être équivalent à une vraie console. Mais
malgré tout, j'aime bien tester dans les conditions réelles, voire
lancer dans une vraie console dès que j'ai un doute.

Si vous utilisez un IDE, ou quand vos programmes en lanceront d'autres,
pensez à surveiller les processus (Ctrl - Alt - Del, onglet
"Processus"), on a parfois des surprises.

--
Pierre Maurette

Avatar
alainL
"Pierre Maurette" a écrit dans le message de
news:
Bonsoir,
Je me fais la main avec de petits bouts de prog.
Il y a un truc (hélas, pas qu'un!) que je ne comprends pas: ces deux prog
semblent utiliser le meme objet et sont ts les deux enregistrés en
xxx.pyw.
Si je les lance depuis l'explorateur de win xp2, l'un part, l'autre non !
(ils tournent ts les deux depuis Python-IDLE)
Je vous mets les deux petits bouts de code. Si vous pouvez me dire ce qui
fait la différence ???


Sans doute le 'é' de "Ce texte écrit sur le canevas"



...
Merci. Effectivement, sans le "é" ça marche....
......................
Vous auriez alors ajouté en tête de fichier une ligne comme:

# -*- coding: iso-8859-1 -*-



et avec le "é", maintenant, ça marche aussi !

A bientôt :-))

alain