diff --git a/mypy/build.py b/mypy/build.py index cdf214d7e69f..896e25add09a 100644 --- a/mypy/build.py +++ b/mypy/build.py @@ -792,6 +792,21 @@ def find() -> Optional[str]: dir = os.path.normpath(os.path.join(pathitem, dir_chain)) if os.path.isdir(dir): dirs.append(dir) + try: + user_dir = site.getusersitepackages() + package_dirs = site.getsitepackages() + [user_dir] + except AttributeError: + package_dirs = [get_python_lib()] + + for pkg_dir in package_dirs: + # Third-party stub packages + stub_pkg = os.path.join(pkg_dir, components[0] + '_stubs') + if os.path.isfile(os.path.join(stub_pkg, 'py.typed')): + components[0] = components[0] + '_stubs' + dirs.append(os.path.join(pkg_dir, os.sep.join(components[:-1]))) + elif os.path.isfile(os.path.join(pkg_dir, components[0], 'py.typed')): + dirs.append(os.path.join(pkg_dir, dir_chain)) + find_module_dir_cache[dir_chain, lib_path] = dirs candidate_base_dirs = find_module_dir_cache[dir_chain, lib_path]