2014-12-09 11 views
9

So che potrebbe sembrare una domanda davvero stupida, ma qualunque cosa. Ho realizzato un piccolo script in Python e ho apportato alcune modifiche in una shell. Normalmente, su un computer OS X (è in esecuzione Python 2.7), dovrei semplicemente digitare reload(the_module) e ricaricare il mio modulo che include le modifiche che ho apportato. Tuttavia, quando sto a ricaricare il modulo qui (. In Windows pitone v 3.4), mi dà semplicemente questo:Ricarica un modulo in Python 3.4

>>> reload(instfile) 
Traceback (most recent call last): 
    File "<pyshell#5>", line 1, in <module> 
    reload(instfile) 
NameError: name 'reload' is not defined 

E poi quando digito imp.reload(my_module), si dice semplicemente che la funzione è deprecato. Non riesco a trovare quello che la nuova funzione (o è equivalente) sarebbe ovunque, quindi se qualcuno mi può aiutare sarebbe bello! :)

+0

Meglio obiettivo per vittima è [questo] (https://stackoverflow.com/questions/961162/reloading-module-giving -nameerror-nome-reload-is-not-defined). –

risposta

22

Il modulo imp è stato deprecato in Python 3.4 in favore di importlib module. Dal documentaion per il modulo imp:

deprecato dalla versione 3.4: Il pacchetto è in attesa imp disapprovazione a favore di importlib.

Quindi, si dovrebbe utilizzare la funzione reload da lì:

>>> import importlib 
>>> importlib.reload 
<function reload at 0x01BA4030> 
>>> 
+1

Mi manca un passaggio o cosa? Ancora non sembra esserci modo di ricaricare un modulo ma chiudere e riaprire la shell dei comandi, in stile anni '80. – user3285866

+2

@ user3285866 Eseguire la funzione effettiva 'importlib.reload (MODULO)' –

Problemi correlati