[PIPython] Eliminare fInestra DOS

Carlo C8E Miron carlo.miron
Mer 6 Lug 2005 22:06:03 CEST


Il 06/07/05, msciab a eprometeus.com<msciab a eprometeus.com> ha scritto:
> 
> > Per curiosita' ,
> >    1 - accade anche in Linux oppure no ??? ( se no, rimane compatibile
> > il file .pyw ? )
> 
> No,non accade in linux

Nei sistemi posix la shell (l'interprete dei comandi) e il terminale
(la finestra nel quale l'interprete e' visualizzato) sono due concetti
(e processi) separati. Quindi uno script puo' essere eseguito da una
shell senza aprire alcuna finestra.
Per rispondere alla seconda parte della domanda, l'estensione
determina l'associazione con il programma solo su sistemi
Microsoft(tm); nei sistemi unix-like l'interprete e' indicato dalla
prima riga del file, dopo il cosiddetto shebang (#!). Quindi la
risposta e' si', un file .pyw e' perfettamente compatibile con Linux.

> >    2 - con una print la shell ricompare ? ( lo so, basta provare ...
> > ok , come non detto )
> 
> No. Non ricompare.  In realtà avere o no la console dietro è un
> parametro di compilazione dell'exe, in pratica si dice a windows: questa
> è una console applicaiton (e ha la console) oppure questa è una gui
> application (e NONha la console)
> 
> A questo punto però la gente vuole raccogliere l'output per vedere gli
> errori. E' abbastanza facile, basta redirigere sys.out e sys.err in un
> file. Va benissimo tranne che in caso di eccezione fatale NON LOGGA
> L'ULTIMO ERRORE (cioè proprio quello che di solito si vuole catturare in
> un file di log), perchè non è flushata prima della exit.
> 
>  La soluzione è una classettina che fa la flush ad ogni passo dello
> stdout/stderr. Se a qualcuno interessa Mariano ve la può postare.

In teoria, *dovrebbe* essere sufficiente impostare la variabile
d'ambiente PYTHONUNBUFFERED=1, anche con os.putenv(), o eseguire
l'interprete con l'opzione -u; se non ricordo male questo
comportamento si puo' impostare anche con py2exe (sorry non ricordo
come).
La teoria si discosta dalla realta'? :)

-- 
Carlo C8E Miron, ICQ #26429731
-- 
Disclaimer:
If I receive a message from you, you are agreeing that:
1. I am by definition, "the intended recipient".
2. All information in the email is mine to do with as I see fit and
 make such financial profit, political mileage, or good joke as it
 lends itself to. In particular, I may quote it on USENET or the WWW.
3. I may take the contents as representing the views of your company.
4. This overrides any disclaimer or statement of confidentiality that
 may be included on your message.


More information about the Python mailing list