Emacs Python jedi突然失败了

时间:2015-07-01 14:32:12

标签: python emacs jedi

过去两周我没有使用emacs进行python编码,到那时它完美无缺,我的设置完美无缺,包括jedi。

两天前我在python(virtualenvwrapper)中安装了pip install virtualenvwrapper,这在我的python安装中已经从两周到今天发生了变化。 Nothing 在我的emacs安装/设置中完全没有变化,绝对没有。今天,我将在两周内第一次开始使用python进行编码,当我在终端中键入emacs test.py时,我在emacs窗口中获得了以下错误消息:

Error (jedi): Failed to start Jedi EPC server.
*** You may need to run "M-x jedi:install-server". ***
This could solve the problem especially if you haven't run the command yet
since Jedi.el installation or update and if the server complains about
Python module imports.

deferred error : (error Server may raise an error : Traceback (most recent call last):
File "/Users/javier/.emacs.d/.python-environments/default/bin/jediepcserver", line 5, in <module>
from pkg_resources import load_entry_point
File "/Users/javier/.emacs.d/.python-environments/default/lib/python2.7/site-packages/pkg_resources/__init__.py", line 21, in <module>
import io
File "//anaconda/lib/python2.7/io.py", line 51, in <module>
import _io
ImportError: dlopen(/Users/javier/.emacs.d/.python-environments/default/lib/python2.7/lib-dynload/_io.so, 2): Symbol not found: __PyErr_ReplaceException
Referenced from: /Users/javier/.emacs.d/.python-environments/default/lib/python2.7/lib-dynload/_io.so
Expected in: dynamic lookup

这是我一年前安装jedi的方式:

1 - 我首先按照jedi installation中的说明操作。顺便说一下,epc, argparse, jedivirtualenv已经安装在python中了。

2 - 我在某地(我不记得在哪里)读到melpa的jedi包没有更新。这听起来很奇怪,但我决定直接从github下载jedipython-environmentjedi-githubpython-environment-github。我将它们放在~/.emacs.d/emacs-jedi/~/.emacs.d/emacs-python-environment/

3 - 然后通过执行以下操作设置jedi

;;Standard Jedi.el setting (read readme-jedi at .emacs.d/)
(add-to-list 'load-path "~/.emacs.d/emacs-jedi/")
(add-to-list 'load-path "~/.emacs.d/emacs-python-environment/")
(add-hook 'python-mode-hook 'jedi:setup)
(setq jedi:complete-on-dot t)

4 - 我在emacs上运行:M-x jedi:install-server

完成了!这对我来说在一年之内一直有用到今天!

当然,作为解决此问题的第一次尝试,我完全按照错误消息的建议执行并再次运行M-x jedi:install-server。然后我得到了以下错误:

Running: pip install --upgrade /Users/javier/.emacs.d/emacs-jedi/...Done
deferred error : (error Process [/Users/javier/.emacs.d/.python-environments/default/bin/pip] exited abnormally : Traceback (most recent call last):
File "/Users/javier/.emacs.d/.python-environments/default/bin/pip", line 7, in <module>
from pip import main
File "/Users/javier/.emacs.d/.python-environments/default/lib/python2.7/site-packages/pip/__init__.py", line 13, in <module>
from pip.utils import get_installed_distributions, get_prog
File "/Users/javier/.emacs.d/.python-environments/default/lib/python2.7/site-packages/pip/utils/__init__.py", line 14, in <module>
import zipfile
File "//anaconda/lib/python2.7/zipfile.py", line 6, in <module>
import io
File "//anaconda/lib/python2.7/io.py", line 51, in <module>
import _io
ImportError: dlopen(/Users/javier/.emacs.d/.python-environments/default/lib/python2.7/lib-dynload/_io.so, 2): Symbol not found: __PyErr_ReplaceException
Referenced from: /Users/javier/.emacs.d/.python-environments/default/lib/python2.7/lib-dynload/_io.so
Expected in: dynamic lookup

在此之后,以及其他一些尝试,我决定重新安装一切,只需使用melpa。 (即jedi-installation之后)。然后我运行M-x jedi:install-server并得到一个非常类似的错误信息:

Making completion list...
Running: pip install --upgrade /Users/javier/.emacs.d/elpa/jedi-core-0.2.5/...Done
deferred error : (error Process [/Users/javier/.emacs.d/.python-environments/default/bin/pip] exited abnormally : Traceback (most recent call last):
File "/Users/javier/.emacs.d/.python-environments/default/bin/pip", line 7, in <module>
from pip import main
File "/Users/javier/.emacs.d/.python-environments/default/lib/python2.7/site-packages/pip/__init__.py", line 13, in <module>
from pip.utils import get_installed_distributions, get_prog
File "/Users/javier/.emacs.d/.python-environments/default/lib/python2.7/site-packages/pip/utils/__init__.py", line 14, in <module>
import zipfile
File "//anaconda/lib/python2.7/zipfile.py", line 6, in <module>
import io
File "//anaconda/lib/python2.7/io.py", line 51, in <module>
import _io
ImportError: dlopen(/Users/javier/.emacs.d/.python-environments/default/lib/python2.7/lib-dynload/_io.so, 2): Symbol not found: __PyErr_ReplaceException
 Referenced from: /Users/javier/.emacs.d/.python-environments/default/lib/python2.7/lib-dynload/_io.so
Expected in: dynamic lookup

总而言之,在此阶段, Nothing 在原始安装的.emacs文件或.emacs.d目录中发生了变化。

在过去两天内对我的python软件包安装所做的所有更改都只是virtualenvwrapper的安装。在这个阶段,我很失落。非常感谢 ANY 帮助。

提前感谢您的时间。

0 个答案:

没有答案