Soit le fichier pb_exit.py qui contient deux lignes :
import sys
sys.exit(0)
Pour python < 2.6 :
python -i pb_exit.py
sort imm�diatement !
Avec python 2.6 :
python -i pb_exit.py
Traceback (most recent call last):
File "pb_exit.py", line 2, in <module>
sys.exit(0)
SystemExit: 0
>>>
Cela semble effectivement le bon comportement
puisque l'on a demand� "-i" ... Mais je cherche
un moyen de faire sortir de l'interpr�teur depuis
le fichier pb_exit.py ... et je ne trouve pas.
Merci de votre aide,
K.
> import sys
> sys.exit(0)
>
> Pour python < 2.6 :
>
> python -i pb_exit.py
>
> sort immédiatement !
>
> Avec python 2.6 :
>
> python -i pb_exit.py
> Traceback (most recent call last):
> File "pb_exit.py", line 2, in <module>
> sys.exit(0)
> SystemExit: 0
>>>>
>
> Cela semble effectivement le bon comportement puisque l'on a demandé
> "-i" ... Mais je cherche un moyen de faire sortir de l'interpréteur
> depuis le fichier pb_exit.py ... et je ne trouve pas.
J'ai l'impression que le but de -i est justement de te permettre
d'utiliser l'interpréteur après l'exécution du script (le comportement
pre-2.6 est incorrect de ce point de vue). Je ne comprends donc pas ce
que tu veux : passer en interactif ou quitter tout avec exit ? Si tu
veux passer en interactif dans certains cas mais pas dans d'autres, j'ai
peur que ce ne soit pas prévu, -i étant justement prévu pour toujours te
donner la main.
-- Alain.
try:
sys.exit(0)
except SystemExit:
import os, signal
os.kill(os.getpid(), signal.SIGQUIT)
pass
Mais :
1. �a �crit : "Quit"
2. C'est pas portable
3. Qu'est que c'est moche !!
K.
> try:
> sys.exit(0)
> except SystemExit:
> import os, signal
> os.kill(os.getpid(), signal.SIGQUIT)
> pass
Je ne vois toujours pas à quoi cela peut être utile, mais, au cas où,
essaie os._exit(0) au lieu de sys.exit(0)
-- Alain.
Bonjour Alain,
J'ai un programme prog.py qui lance plein de serveurs (corba)
et qui fait plein de choses super bien ... On le lance avec -i
pour pouvoir, pendant la phase interactive, interagir avec les
serveurs, en lancer d'autres, ...
Lorsque l'utilisateur quitte l'interpréteur, tout s'éteint.
Pour éviter que l'utilisateur tape : python -i prog.py [args]
on a créé un alias prog = "python -i prog.py"
Pour avoir les options possibles de prog, l'utilisateur tape
donc prog -h ... le code code traite les arguments en utilisant
optparse, le module optparse voie "-h" et lance sys.exit(0).
Jusque maintenant (python < 2.6), cela suffisait à sortir
de l'interpréteur ... plus maintenant.
Voila l'explication de la demande ...
K.
Merci Alain !! C'est parfait !