Я не использовал emacs для кодирования на python последние две недели, и к тому времени все было идеально, моя установка работала отлично, включая jedi.
Два дня назад я установил virtualenvwrapper
в python (pip install virtualenvwrapper
), и это все, что изменилось за две недели до сегодняшнего дня в моей установке python. Ничего не изменилось в моей установке/настройке 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. Кстати, epc, argparse, jedi
и virtualenv
в питоне уже, конечно, установлены.
2- Я где-то читал (не помню где), что пакет jedi на melpa не обновляется. Мне это показалось странным, но я решил напрямую загрузить jedi
, а также python-environment
с github по адресу: jedi-github и python-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). Затем я запускаю 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
Подводя итог, можно сказать, что на данном этапе ничего не изменилось в моем файле .emacs
или каталоге .emacs.d
по сравнению с исходной установкой.
Все изменения, внесенные в мою установку пакета Python за последние два дня, — это просто установка virtualenvwrapper
. На этом этапе я совсем потерялся. Мы очень ценим ЛЮБУЮ помощь.
Спасибо заранее за ваше время.
virtualenvwrapper
он автоматически обновился до 2.7.10, так что наверняка может быть так. Emacs+python доставил мне много головной боли! :) . В конечном итоге я перейду к возвышенному. В любом случае, спасибо! - person Javier   schedule 03.07.2015