diff options
Diffstat (limited to 'astroid/modutils.py')
-rw-r--r-- | astroid/modutils.py | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/astroid/modutils.py b/astroid/modutils.py index 87d58b4f..2cab500e 100644 --- a/astroid/modutils.py +++ b/astroid/modutils.py @@ -90,6 +90,17 @@ if os.name == "nt": pass if platform.python_implementation() == "PyPy": + # The get_python_lib(standard_lib=True) function does not give valid + # result with pypy in a virtualenv. + # In a virtual environment, with CPython implementation the call to this function returns a path toward + # the binary (its libraries) which has been used to create the virtual environment. + # Not with pypy implementation. + # The only way to retrieve such information is to use the sys.base_prefix hint. + # It's worth noticing that under CPython implementation the return values of + # get_python_lib(standard_lib=True) and get_python_lib(santdard_lib=True, prefix=sys.base_prefix) + # are the same. + # In the lines above, We could have replace the call to get_python_lib(standard=True) + # with the one using prefix=sys.base_prefix but we prefer modifying only what deals with pypy. STD_LIB_DIRS.add(get_python_lib(standard_lib=True, prefix=sys.base_prefix)) _root = os.path.join(sys.prefix, "lib_pypy") STD_LIB_DIRS.add(_root) @@ -535,9 +546,6 @@ def is_standard_module(modname, std_path=None): return False if std_path is None: std_path = STD_LIB_DIRS - if modname == "hashlib": - print(f"Module {modname} is located in {filename}") - print(f"STD_LIB_DIRS are {STD_LIB_DIRS}") for path in std_path: if filename.startswith(_cache_normalize_path(path)): return True |