diff --git a/jedi/evaluate/__init__.py b/jedi/evaluate/__init__.py index 13a40030..63be2d7b 100644 --- a/jedi/evaluate/__init__.py +++ b/jedi/evaluate/__init__.py @@ -147,7 +147,15 @@ class Evaluator(object): @property @evaluator_function_cache() def builtins_module(self): - return compiled.get_special_object(self, u'BUILTINS') + module_name = 'builtins' + if self.environment.version_info.major == 2: + module_name = '__builtin__' + builtins_module, = self.import_module( + (module_name,), + parent_module_context=None, + sys_path=() + ) + return builtins_module def reset_recursion_limitations(self): self.recursion_detector = recursion.RecursionDetector() diff --git a/jedi/evaluate/compiled/__init__.py b/jedi/evaluate/compiled/__init__.py index f69b90f0..8e37ae39 100644 --- a/jedi/evaluate/compiled/__init__.py +++ b/jedi/evaluate/compiled/__init__.py @@ -7,7 +7,10 @@ from jedi.evaluate.helpers import execute_evaluated def builtin_from_name(evaluator, string): builtins = evaluator.builtins_module - return create_from_name(evaluator, builtins, string) + filter_ = next(builtins.get_filters(search_global=False)) + name, = filter_.get(string) + context, = name.infer() + return context def create_simple_object(evaluator, obj):