Проблемы с загрузкой пакетов при установке el-get emacs-jedi
Я следовал этим инструкциям с el-get
попытаться установить emacs-jedi (и другие необходимые пакеты), но не повезло.
В моем файле.emacs я добавил следующие строки:
;; .emacs
;; Load package repositories
(require 'package)
(add-to-list 'package-archives
'("marmalade" . "http://marmalade-repo.org/package/") t)
(add-to-list 'package-archives
'("melpa" . "http://melpa.milkbox.net/packages/") t)
;; Install / load / require el-get and
;; packages managed by it.
(add-to-list 'load-path "~/.emacs.d/el-get/")
(add-to-list 'load-path "~/.emacs.d/el-get/el-get")
(unless (require 'el-get nil t)
(url-retrieve
"https://raw.github.com/dimitri/el-get/master/el-get-install.el"
(lambda (s)
(end-of-buffer)
(eval-print-last-sexp))))
;; Initialize any loaded packages
(package-initialize)
;; stuff to set font, theme, etc.
;; ...
;; Include jedi for Python mode.
(add-hook 'python-mode-hook 'jedi:setup)
(setq jedi:complete-on-dot t)
;; rest of file ...
Сначала я видел проблему "не могу открыть загрузочный файл jedi/jedi". Это, казалось, прошло, когда я добавил "~/.emacs.d/el-get/" в путь загрузки (el-get
кажется, только помещает "~/.emacs.d/el-get/el-get" в путь загрузки при установке).
Но после этого, открывая файл Python и пытаясь M-x python-mode
выдает ошибку:
Symbol's function definition is void: jedi:setup
Я рад сделать больше отладки или предоставить больше сообщений или вывода - но после поиска в Google этих сообщений об ошибках в течение долгого времени, я не смог найти ничего, что могло бы показаться продуктивным.
1 ответ
Вам не хватает (el-get 'sync)
который упоминается в https://github.com/dimitri/el-get
Кроме того, вам не нужно (package-initialize)
и т.д. для настройки package.el. Все обрабатывается el-get. Это хорошая идея, чтобы не смешивать два менеджера пакетов.
Вот минимальная настройка Emacs для использования Jedi через el-get:
(add-to-list 'load-path "~/.emacs.d/el-get/el-get")
;; Uncomment this, if you are in hurry
;; (setq el-get-install-skip-emacswiki-recipes nil)
(unless (require 'el-get nil 'noerror)
(with-current-buffer
(url-retrieve-synchronously
"https://raw.github.com/dimitri/el-get/master/el-get-install.el")
(goto-char (point-max))
(eval-print-last-sexp)))
(el-get 'sync)
(add-hook 'python-mode-hook 'jedi:setup)
(setq jedi:complete-on-dot t)
;; Type:
;; - M-x el-get-install RET jedi RET
;; - M-x jedi:install-server RET
;; Then open any Python file.
Обновить:
Я добавил это в руководстве