Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

reload (update) a module file in the interpreter

Tags:

python

module

Let's say I have this python script script.py and I load it in the interpreter by typing

import script

and then I execute my function by typing:

script.testFunction(testArgument)

OK so far so good, but when I change script.py, if I try to import again the script doesn't update. I have to exit from the interpreter, restart the interpreter, and then import the new version of the script for it to work.

What should I do instead?

like image 689
davidone Avatar asked Sep 19 '10 22:09

davidone


People also ask

How do you reload a module?

How to Reload a Module. The reload() method is used to reload a module. The argument passed to the reload() must be a module object which is successfully imported before.

How do I reload a Python 3 module?

If you truly must reload a module in Python 3, you should use either: importlib. reload for Python 3.4 and above.

How do you refresh Python code?

In this article, we present the approach to implement a Python script that can refresh an URL / Tab in the browser. Manually, this can be done by pressing F5 key.

How do you force reimport in Python?

1 Answer. You can re-import a module in python, by using the importlib and its function reload.


2 Answers

You can issue a reload script, but that will not update your existing objects and will not go deep inside other modules.

Fortunately this is solved by IPython - a better python shell which supports auto-reloading.

To use autoreloading in IPython, you'll have to type import ipy_autoreload first, or put it permanently in your ~/.ipython/ipy_user_conf.py.

Then run:

%autoreload 1
%aimport script

%autoreload 1 means that every module loaded with %aimport will be reloaded before executing code from the prompt. This will not update any existing objects, however.

See http://ipython.org/ipython-doc/dev/config/extensions/autoreload.html for more fun things you can do.

like image 139
viraptor Avatar answered Sep 20 '22 12:09

viraptor


http://docs.python.org/library/functions.html#reload

reload(module)

Reload a previously imported module. The argument must be a module object, so it must have been successfully imported before. This is useful if you have edited the module source file using an external editor and want to try out the new version without leaving the Python interpreter. The return value is the module object (the same as the module argument).

like image 26
msw Avatar answered Sep 23 '22 12:09

msw