diff options
-rwxr-xr-x | Lib/pydoc.py | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/Lib/pydoc.py b/Lib/pydoc.py index cc0f27b..4a21bc3 100755 --- a/Lib/pydoc.py +++ b/Lib/pydoc.py @@ -1017,7 +1017,13 @@ def freshimport(path, cache={}): # isn't good enough (e.g. what if the module contains a class that # inherits from another module that has changed?). if path not in sys.builtin_module_names: - del sys.modules[path] + # Python never loads a dynamic extension a second time from the + # same path, even if the file is changed or missing. Deleting + # the entry in sys.modules doesn't help for dynamic extensions, + # so we're not even going to try to keep them up to date. + info = inspect.getmoduleinfo(sys.modules[path].__file__) + if info[3] != imp.C_EXTENSION: + del sys.modules[path] try: module = __import__(path) except: |