Mac下python使用anaconda-mode无法补全numpy库(其他库都可以补全)

系统:OS X EI Capitan emacs版本:25.2.1 配置: (setq python-shell-interpreter “/usr/local/bin/python3”)

(add-hook 'python-mode-hook 'anaconda-mode)

(add-hook 'python-mode-hook (lambda () (set (make-local-variable 'company-backends) '((company-anaconda company-dabbrev-code) company-dabbrev))))

测试了sys,os pandas,matolotlib,difflib,scipy,gzip等库都可以自动补全,只有numpy无法补全。

报错代码: anaconda_mode port 50876 127.0.0.1 - - [20/Jun/2017 03:44:12] ================================================================================ Traceback (most recent call last): File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/service_factory-0.1.5-py3.5.egg/service_factory/service.py”, line 101, in apply result = method(**params) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/anaconda_mode-0.1.8-py3.5.egg/anaconda_mode.py”, line 27, in wrapper return f(Script(source, line, column, path)) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/anaconda_mode-0.1.8-py3.5.egg/anaconda_mode.py”, line 49, in wrapper for definition in f(script)] File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/anaconda_mode-0.1.8-py3.5.egg/anaconda_mode.py”, line 49, in for definition in f(script)] File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/api/classes.py”, line 501, in type followed = self.follow_definition() File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/cache.py”, line 39, in wrapper rv = function(obj, *args, **kwargs) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/api/classes.py”, line 533, in follow_definition defs = self._follow_statements_imports() File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/cache.py”, line 39, in wrapper rv = function(obj, *args, **kwargs) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/api/classes.py”, line 521, in _follow_statements_imports return super(Completion, self)._follow_statements_imports() File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/cache.py”, line 39, in wrapper rv = function(obj, *args, **kwargs) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/api/classes.py”, line 326, in _follow_statements_imports return imports.follow_imports(self._evaluator, [stripped]) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/imports.py”, line 482, in follow_imports for r in ImportWrapper(evaluator, s).follow(): File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/imports.py”, line 203, in follow for s in scopes)) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/imports.py”, line 203, in for s in scopes)) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/init.py”, line 260, in follow_path fp = self._follow_path(iter_paths[i], typ, call_scope) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/init.py”, line 308, in _follow_path types = self.find_types(typ, current) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/init.py”, line 113, in find_types return f.find(scopes, resolve_decorator, search_global) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/debug.py”, line 51, in wrapper result = func(*args, **kwargs) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/finder.py”, line 47, in find types = self._names_to_types(names, resolve_decorator) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/finder.py”, line 232, in _names_to_types typ = typ.get_decorated_func() File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/representation.py”, line 386, in get_decorated_func return self._decorated_func()
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/cache.py”, line 39, in wrapper rv = function(obj, *args, **kwargs) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/representation.py”, line 362, in _decorated_func wrappers = self._evaluator.execute(decorator, (old_func,)) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/debug.py”, line 51, in wrapper result = func(*args, **kwargs) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/init.py”, line 336, in execute stmts = er.FunctionExecution(self, obj, params).get_return_types(evaluate_generator) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/cache.py”, line 39, in wrapper rv = function(obj, *args, **kwargs) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/recursion.py”, line 108, in run result = func(execution, evaluate_generator) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/representation.py”, line 437, in get_return_types stmts += self._evaluator.eval_statement® File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/cache.py”, line 39, in wrapper rv = function(obj, *args, **kwargs) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/recursion.py”, line 24, in run result = func(evaluator, stmt, *args, **kwargs) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/debug.py”, line 51, in wrapper result = func(*args, **kwargs) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/init.py”, line 132, in eval_statement result = self.eval_expression_list(expression_list) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/init.py”, line 170, in eval_expression_list return self.process_precedence_element§ or [] File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/init.py”, line 180, in process_precedence_element return self.eval_statement_element(el) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/init.py”, line 215, in eval_statement_element return self.eval_call(element) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/init.py”, line 226, in eval_call return self.eval_call_path(path, par, s.start_pos) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/init.py”, line 240, in eval_call_path search_global=True) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/init.py”, line 113, in find_types return f.find(scopes, resolve_decorator, search_global) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/debug.py”, line 51, in wrapper result = func(*args, **kwargs) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/finder.py”, line 47, in find types = self._names_to_types(names, resolve_decorator) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/finder.py”, line 232, in _names_to_types typ = typ.get_decorated_func() File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/representation.py”, line 386, in get_decorated_func return self._decorated_func()
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/cache.py”, line 39, in wrapper rv = function(obj, *args, **kwargs) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/representation.py”, line 362, in _decorated_func wrappers = self._evaluator.execute(decorator, (old_func,)) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/debug.py”, line 51, in wrapper result = func(*args, **kwargs) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/init.py”, line 340, in execute stmts = obj.execute_subscope_by_name(‘call’, params) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/representation.py”, line 133, in execute_subscope_by_name return self._evaluator.execute(method, args) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/debug.py”, line 51, in wrapper result = func(*args, **kwargs) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/init.py”, line 336, in execute stmts = er.FunctionExecution(self, obj, params).get_return_types(evaluate_generator) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/cache.py”, line 39, in wrapper rv = function(obj, *args, **kwargs) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/recursion.py”, line 108, in run result = func(execution, evaluate_generator) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/representation.py”, line 437, in get_return_types stmts += self._evaluator.eval_statement® File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/cache.py”, line 39, in wrapper rv = function(obj, *args, **kwargs) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/recursion.py”, line 24, in run result = func(evaluator, stmt, *args, **kwargs) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/debug.py”, line 51, in wrapper result = func(*args, **kwargs) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/init.py”, line 132, in eval_statement result = self.eval_expression_list(expression_list) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/init.py”, line 170, in eval_expression_list return self.process_precedence_element§ or [] File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/init.py”, line 180, in process_precedence_element return self.eval_statement_element(el) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/init.py”, line 215, in eval_statement_element return self.eval_call(element) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/init.py”, line 226, in eval_call return self.eval_call_path(path, par, s.start_pos) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/init.py”, line 240, in eval_call_path search_global=True) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/init.py”, line 113, in find_types return f.find(scopes, resolve_decorator, search_global) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/debug.py”, line 51, in wrapper result = func(*args, **kwargs) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/finder.py”, line 47, in find types = self._names_to_types(names, resolve_decorator) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/finder.py”, line 222, in _names_to_types types += self._remove_statements(typ, name) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/finder.py”, line 260, in _remove_statements types += evaluator.eval_statement(stmt, seek_name=unicode(self.name_str)) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/cache.py”, line 39, in wrapper rv = function(obj, *args, **kwargs) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/recursion.py”, line 24, in run result = func(evaluator, stmt, *args, **kwargs) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/debug.py”, line 51, in wrapper result = func(*args, **kwargs) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/init.py”, line 158, in eval_statement new_result += finder.find_assignments(ass_expression_list[0], result, seek_name) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/finder.py”, line 563, in find_assignments return _assign_tuples(lhs, results, seek_name) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/finder.py”, line 544, in _assign_tuples result += find_assignments(command, r, seek_name) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/finder.py”, line 564, in find_assignments elif unicode(lhs.name.names[-1]) == seek_name: AttributeError: ‘Operator’ object has no attribute ‘name’

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/service_factory-0.1.5-py3.5.egg/service_factory/providers/basehttp.py”, line 40, in do_POST status, response = self.server.service(data) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/service_factory-0.1.5-py3.5.egg/service_factory/service.py”, line 50, in call result = self.apply(method, args) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/service_factory-0.1.5-py3.5.egg/service_factory/service.py”, line 105, in apply server_error(args[‘id’], error) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/service_factory-0.1.5-py3.5.egg/service_factory/errors.py”, line 91, in server_error raise ServiceException(500, dumps(response)) service_factory.exceptions.ServiceException: (500, ‘{“jsonrpc”: “2.0”, “id”: 1, “error”: {“code”: -32000, “message”: “Server error”, “data”: “AttributeError(\”‘Operator’ object has no attribute ‘name’\",)"}}’)