diff options
| author | Tom Forbes <tom@tomforb.es> | 2019-05-27 20:14:49 +0100 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2019-05-28 08:31:33 +0200 |
| commit | b2790f74d4f38c8b297b7c1cef6875d2378f6fa6 (patch) | |
| tree | 4e914cc30f0449a83c6e3599af4f5b97641ac6ae /django/utils | |
| parent | df46b329e0900e9e4dc1d60816c1dce6dfc1094e (diff) | |
Fixed #30479 -- Fixed detecting changes in manage.py by autoreloader when using StatReloader.
Regression in c8720e7696ca41f3262d5369365cc1bd72a216ca.
Diffstat (limited to 'django/utils')
| -rw-r--r-- | django/utils/autoreload.py | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/django/utils/autoreload.py b/django/utils/autoreload.py index 7ca0d68fae..cb7cd1c725 100644 --- a/django/utils/autoreload.py +++ b/django/utils/autoreload.py @@ -114,7 +114,15 @@ def iter_modules_and_files(modules, extra_files): # During debugging (with PyDev) the 'typing.io' and 'typing.re' objects # are added to sys.modules, however they are types not modules and so # cause issues here. - if not isinstance(module, ModuleType) or getattr(module, '__spec__', None) is None: + if not isinstance(module, ModuleType): + continue + if module.__name__ == '__main__': + # __main__ (usually manage.py) doesn't always have a __spec__ set. + # Handle this by falling back to using __file__, resolved below. + # See https://docs.python.org/reference/import.html#main-spec + sys_file_paths.append(module.__file__) + continue + if getattr(module, '__spec__', None) is None: continue spec = module.__spec__ # Modules could be loaded from places without a concrete location. If |
