el-get安装的emacs-jedi包加载问题

3 投票
1 回答
2111 浏览
提问于 2025-04-17 22:42

我按照这些说明,用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

我很乐意进行更多的调试,或者提供更多的消息或输出——但是在谷歌搜索这些错误信息很久后,我还是找不到任何有用的解决办法。

1 个回答

3

你缺少了 (el-get 'sync) 这个设置,具体内容可以在 这个链接 找到。

另外,你不需要使用 (package-initialize) 之类的命令来设置 package.el,因为这些都由 el-get 来处理。最好不要把两个包管理器混在一起使用。

下面是一个最简单的 Emacs 设置,用来通过 el-get 使用 Jedi:

(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.

更新:

我已经把它添加到手册里了。

  1. http://tkf.github.io/emacs-jedi/latest/#install
  2. http://tkf.github.io/emacs-jedi/latest/#quick-try

撰写回答