2012-12-14 12 views
21

Sono stato in giro per circa un mese con Python ora e qualcosa mi dà fastidio. Io uso il toolkit python (x, y), che viene fornito con l'IDE Spyder pulito. La mia domanda riguarda l'UMD (User module deleter) di Spyder.Spyder - UMD ha cancellato: modulo

Ho trovato il modulo grafico this su Internet, che aiuta a fare alcune cose grafiche semplici in uno script python (per quanto ho capito).

Non è come se fossi bloccato, ma quando eseguo il codice folowing:

import pylab as p 
import graphics as g 

window = g.GraphWin("tryout", 600, 600) 
window.close() 
print p.sqrt(4) 

L'output è:

>>>runfile(r'C:\some\folders\tryout.py', wdir=r'C:\some\folders') 
>>>UMD has deleted: graphics 
>>>2.0 

linea 1 è ovviamente o.k. e così è la linea 3, ma non ottengo la linea 2. Inoltre, la finestra provocata lampeggia dentro e fuori dallo schermo, come dovrebbe. La riga 2 non sembra fare alcun danno e riesco perfettamente a rieseguire il file tutte le volte che non voglio, ma voglio sapere da dove proviene.

AFAIK UMD forza l'interprete a ricaricare un modulo ogni volta che viene eseguito uno script. Il messaggio visualizzato significa che "it" ha cancellato i riferimenti al modulo, perché non è più usato, o è qualcos'altro? O vuol dire che qualcosa non va, e farà 'male' il mio codice dovrei aggiungerne altri in seguito?

Nota: prima domanda, quindi si prega di commentare la schifezza di esso per aiutarmi a migliorare le mie capacità di chiedere.

EDIT: Ho provato spostando intorno alla linea di test print p.sqrt(4), e abbiamo scoperto che non importa dove l'ho messo. Se la sua prima linea dopo l'importazione dei moduli, è raisses ancora il messaggio prima di mostrare sqrt (4)

risposta

43

Risposta breve:

Forse cancellati non è la migliore parola nel messaggio si parla. Dovrebbe essere ricaricato , che è ciò che UMD sta realmente facendo e perché è il modo meno confusione. Riempirò un problema per questo nel nostro tracker dei problemi.

Risposta lunga:

UMD ricarica non solo lo script, ma anche tutti i moduli locali dipende. Con locale Voglio dire i moduli fuori della vostra installazione di Python e su cui si dispone di autorizzazioni di scrittura.

L'idea è che la prossima allo script, forse avete sviluppato una libreria di funzioni ausiliarie per andare con esso. Quindi molto probabilmente desidera ricaricare quella biblioteca anche, in modo che eventuali modifiche ad esso si riflettono in fase di esecuzione.

So che questo non è il vostro caso, quindi, se si desidera rimuovere quel messaggio, si può andare a:

Strumenti>Preferenze>Console>Impostazioni avanzate>Modulo utente deleter

e disattivare l'opzione

Visualizza ri lista moduli caricati

+0

Grazie per il chiarimento ... =) – Kraay89

+0

Utile, stampa un elenco molto lungo quando si utilizza Mayavi, ad esempio, poiché questo "Mostra elenco moduli ricaricati" è più per il debug, non dovrebbe essere disabilitato di default? – dashesy

+2

Non penso che sia per il debug; si tratta di informare l'utente di quali moduli sono stati ricaricati prima dell'esecuzione successiva. Nel tuo caso, dal momento che immagino che Mayavi sia installato localmente, puoi disattivare il messaggio per aggiungerlo all'elenco dei moduli esclusi. –