Инструмент Emacs Jedi python не может загрузить ошибку поиска программы: разрешение отклонено, python?

Я получаю следующую ошибку, когда пытаюсь открыть файл python в emacs:

не могу угадать смещение отступа Python, используя значения по умолчанию: 4

отложенная ошибка: (ошибка поиска программы: разрешение отклонено, python)

Я предполагаю, что переменную среды python необходимо скопировать в переменную PATH Emacs, потому что мне пришлось сделать то же самое для Mac OS X, используя path.el, но теперь мне нужно сделать то же самое для Windows 7. Как я могу это сделать?

init.el

(load "~/.emacs.d/path.el")

(require 'package)
(add-to-list 'package-archives
             '("marmalade" . "http://marmalade-repo.org/packages/") t)
(package-initialize)


(require 'jedi)
(setq jedi:server-command
  (list "C:/Python33/python.exe" jedi:server-script))

(add-hook 'python-mode-hook 'jedi:setup)
(setq jedi:complete-on-dot t)   

(global-auto-complete-mode t)

(require 'ido)
(ido-mode t)

(add-to-list 'load-path "~/.emacs.d/elpa/magit-1.2.0/magit.el")
(require 'magit)

(require 'linum)
(global-linum-mode 1)

person Korey Hinton    schedule 01.07.2013    source источник
comment
Поскольку рыцари-джедаи, кажется, не в сети: скорее похоже на сломанную установку Python. Работает ли Python вне Emacs?   -  person Andreas Röhler    schedule 02.07.2013
comment
@AndreasRöhler Да, я установил python 3.3.2, и если я ввожу python в командной строке, оболочка python работает, но если я захожу в eshell внутри emacs, команда python не работает.   -  person Korey Hinton    schedule 02.07.2013
comment
CONTRIBUTING.md: Если вы видите что-то вроде deferred error : (error ...) в эхо-области, в большинстве случаев ошибка исходит от Jedi (библиотека Python). Получите трассировку по [этой инструкции][traceback] и посмотрите, откуда ошибка. Если это от Jedi, отправьте отчет об ошибке в его [систему отслеживания проблем][jedi-issue]. [устранение неполадок]: tkf.github.io/emacs-jedi/latest/#troubleshooting [информация о версии]: tkf.github. io/emacs-jedi/latest/#jedi:show-version-info [traceback]: tkf.github.io/emacs-jedi/latest/#how-to-get-traceback   -  person Andreas Röhler    schedule 02.07.2013
comment
вы можете пропустить epc: python-epc.readthedocs.org/en/latest   -  person Andreas Röhler    schedule 02.07.2013


Ответы (3)


Откройте Python и получите полный путь к Python, используя sys.executable:

>>> import sys
>>> sys.executable

А затем установите jedi:server-command следующим образом:

(setq jedi:server-command
      (list "THE-PATH-YOU-GOT" jedi:server-script))

см. также: http://tkf.github.io/emacs-jedi/latest/#jedi:server-command

Обратите внимание, что вам необходимо установить модули Python (например, epc и jedi), и они должны быть импортируемы для этого Python. Поэтому убедитесь, что это работает в вашем Python:

>>> import epc, jedi
person tkf    schedule 03.07.2013
comment
Я обновил свой init.el в вопросе, правильно ли я делаю? Кроме того, я могу импортировать epc и jedi, но это все равно не работает. - person Korey Hinton; 03.07.2013
comment
jedi:server-command выглядит нормально. Сообщение об ошибке изменилось? Еще одна вещь, которую нужно проверить: можете ли вы вызвать простой python из Emacs? Что происходит, когда вы делаете M-! python --version или M-! C:/Python33/python.exe --version? - person tkf; 03.07.2013

Ищите «deferred.el». Существуют две функции внутри, которые вызывают эту ошибку. Запуск их под edebug должен выявить причину.

person Andreas Röhler    schedule 02.07.2013
comment
Я новичок в edebug. Я пытался выполнить каждую функцию, используя C-x C-e, но я был слишком незнаком с edebug, чтобы понять это. Это то, что вы имели в виду под запуском edebug? - person Korey Hinton; 03.07.2013
comment
@KoreyHinton Да. Кстати, работает другое автозаполнение, здесь оно обычно отключено, так как слишком сильно отвлекает. OTOH Emacs предоставляет TAB-дополнение, dabbrev-expand, abbr-mode, которые, на мой взгляд, даже более эффективны. Маленькое утешение :) - person Andreas Röhler; 04.07.2013

Перезагрузка* моего компьютера устранила эту ошибку:

отложенная ошибка: (ошибка поиска программы: разрешение отклонено, python)

*Это был мой первый перезапуск после установки Python.

Кажется, теперь все работает нормально, я все еще получаю ошибку can’t guess python indent offset, using defaults: 4, но завершение вкладок jedi работает нормально.

Спасибо всем за предложения, это, безусловно, помогло!

person Korey Hinton    schedule 08.07.2013