There's no way to unload something once you've imported it. Python keeps a copy of the module in a cache, so the next time you import it it won't have to reload and reinitialize it again.
If all you need is to lose access to it, you can use del
:
import package
del package
Note that if you then reimport the package, the cached copy of the module will be used.
If you want to invalidate the cached copy of the module so that you can re-run the code on reimporting, you can use sys.modules.pop
instead as per @DeepSOIC's answer.
If you've made a change to a package and you want to see the updates, you can reload
it. Note that this won't work in some cases, for example if the imported package also needs to reload a package it depends on. You should read the relevant documentation before relying on this.
For Python versions up to 2.7, reload
is a built-in function:
reload(package)
For Python versions 3.0 to 3.3 you can use imp.reload
:
import imp
imp.reload(package)
For Python versions 3.4 and up you can use importlib.reload
:
import importlib
importlib.reload(package)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…