anaconda-mode 的 eldoc 信息更新很慢,然后。。。

在编辑 org-mode 的 python src block 时,查看后台进程,会显示一大堆 connect,这是什么情况?

anaconda-mode 的 traceback 信息比较长,我就贴最后面的

AttributeError: 'NoneType' object has no attribute 'argument_node'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/neoarch/.emacs.d/.cache/anaconda-mode/0.1.8/service_factory-0.1.5-py3.6.egg/service_factory/providers/basehttp.py", line 40, in do_POST
    status, response = self.server.service(data)
  File "/home/neoarch/.emacs.d/.cache/anaconda-mode/0.1.8/service_factory-0.1.5-py3.6.egg/service_factory/service.py", line 50, in __call__
    result = self.apply(method, args)
  File "/home/neoarch/.emacs.d/.cache/anaconda-mode/0.1.8/service_factory-0.1.5-py3.6.egg/service_factory/service.py", line 105, in apply
    server_error(args['id'], error)
  File "/home/neoarch/.emacs.d/.cache/anaconda-mode/0.1.8/service_factory-0.1.5-py3.6.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(\\"\'NoneType\' object has no attribute \'argument_node\'\\",)"}}')

这个是用 3.6 下的虚拟环境出现的,

我换 3.5 的虚拟环境好像暂时还没有出现这个问题。

但是同样有后台大量连接的问题。

论坛里有好像有几个用 anaconda-mode 没有问题的同学,能不能说一下你的使用环境? @ztlevi

就这么一个问题,那么多高手居然解决不了?!

与我最上面所说的问题相关的 issue,都已经两年了,居然没人解决得了?

看来用 emacs 写 python 的人还是不多啊。

那个 lsp-mode 写 python 怎么样?是不是必须在 Windows 下面使用?

你看过eshell能用which conda找到anaconda吗?这个先试试看。找不到的话得去改zshenv,bashrc吧。

然后我的平台是mac,emacs mac port 25.2.2,Python 3.6.1 :: Anaconda 4.4.0 (x86_64)。

我在spacemacs里唯一改python的地方是这个

(defun ztlevi-programming/post-init-python ()
  (add-hook 'python-mode-hook #'(lambda () (modify-syntax-entry ?_ "w")))
  ;; if you use pyton3, then you could comment the following line
  ;; (setq python-shell-interpreter "python")
  )

org的这个bug我也有。但是从来没因为python卡死过。。。提供不了backtrace message。。

可能真像这人说的吧

@paddyhoran That doesn’t work for me too. I sovle it by revise anaconda-mode.el source file,find “(add-hook 'anaconda-mode-response-read-fail-hook 'anaconda-mode-show-unreadable-response)” and remove it,then you need to recompile anaconda-mode.el or delete anaconda-mode.elc directly,then it worked.

正常在python里编辑是没有的

1 个赞

感谢回复。看来不是我一个人是这样。我也没有卡死,但是快速移动光标的时候很卡,这是 eldoc 造成的,卡的原因应该和这个多个连接是同一个问题吧?

elpy 就没有这个问题,但是 elpy 代码比 anaconda-mode 复杂,而且有其它问题。我是没办法才来用回 anaconda。

那人说的方法我也试了,没有用。

问题终于解决了,原来是我之前为了加速我自己写的 mode 的 eldoc 显示速度,把 eldoc-idle-delay 这个变量的值设为了 0,然后就悲剧了。。。。

有些变量不是随便改的,我先哭一会去。。。:cry:

更正: 问题只是部分解决了,也就是快速移动光标的时候不卡了,但是不管是 multi connections 还是 connection failed 的问题都没有解决。

正在试 Lsp-mode , 有时候会有点卡,Org-mode文学编程时, 暂时没法补全 python

1 个赞

linux 下怎样使用?能够显示 eldoc 信息吗?

额额,我太菜了,不知道 Eldoc 是什么东东,但是我在 Minor-mode 中发现有加载 Eldoc。至于怎样使用,我没用 Anaconda-mode, 只用了 Python-mode

eldoc 就是光标放在函数名后面的括号内的时候,在 minibuffer 内显示的这个信息:

图片

有 lsp 的话应该不用 anaconda-mode 了,它们的功能是重叠的

1 个赞

我试了两个函数都没有出现信息, 大概 lsp-python 还不完善吧

是指在 edit buffer 内无法补全吗?还是说在 org buffer 内的补全?

在 Edit buffer 和 org buffer 内都没法补全。

好奇怪啊

刚才看了 lsp-mode 的源码,确实没有 eldoc,不过 eldoc 函数都很好写的,想要的话随时都可以添加上去,估计现在开发者的重心还不在这些细枝末节上,或者在等待 PR。

更正: 其实是有的,放在另外一个文件里了。

不管怎样,既然已经切换回 anaconda-mode 了,就先用着吧。等碰到问题再说吧,说不定哪天又切回 elpy 了。

我这是折腾的什么啊 :joy: 心好累

:joy::joy::joy:

啊啊啊,我的锅,能够显示 eldoc 信息的。光标要放在函数上才能显示,放在括号内没法显示~~

这不是 eldoc 信息吧?

类似这样的算 eldoc 信息吗~

是的,这回是的。

定义一个 DataFrame 看看能不能返回实例的方法的信息

比如 df.apply() 这种,要是能的话就牛逼了