I have a foo.py
def foo(): print "test"
In IPython I use:
In [6]: import foo In [7]: foo.foo() test
Then I changed the foo()
to:
def foo(): print "test changed"
In IPython, the result for invoking is still test
:
In [10]: import foo In [11]: foo.foo() test
Then I use:
In [15]: del foo In [16]: import foo In [17]: foo.foo() test
I delete the foo.pyc
in same folder foo.py
exists, but still no luck.
May I know how to reimport the updated code in runtime?
When a module is first imported, Python searches for the module and if found, it creates a module object 1, initializing it. If the named module cannot be found, a ModuleNotFoundError is raised. Python implements various strategies to search for the named module when the import machinery is invoked.
1 Answer. You can re-import a module in python, by using the importlib and its function reload.
You can use https://pypi.org/project/unimport/, it can find and remove unused imports for you.
For Python 2.x
reload(foo)
For Python 3.x
import importlib import foo #import the module here, so that it can be reloaded. importlib.reload(foo)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With