Unloading a module in Python 3.x (not the same as re-loading)

python, python-3.x

Solution

The `sys.modules` does still hold a reference to the module.

>>> import six
>>> del six
>>> sys.modules["six"]
<module 'six' from '/usr/lib64/python3.3/site-packages/six.py'>

sys.modules still holds a reference. So I don't think you can unload a module in Python 3.3 either.

Problem

It's clear to me that there was no clean solution in Python 2 to unload a module, and this was a known bug, that was set to be corrected. The posts: How do I unload (reload) a Python module? Remove an imported python module of the year 2009 and 2010 confirm this lack of support for unloading a module. I wonder if this was solved in Python 3.x. When I do, `import os`, `del os`, `dir()`, the `os` module is not there (at least not visible, usable). Is it gone?

Original source

Related problems