【问题标题】:Package load problems with el-get installed emacs-jediel-get 安装的 emacs-jedi 的包加载问题
【发布时间】:2014-03-17 18:20:50
【问题描述】:

我关注了these instructions with el-get to try to install 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

我很高兴进行更多调试或提供更多消息或输出 - 但在谷歌搜索这些错误消息很长时间后,我一直无法找到任何看起来很有成效的尝试。

【问题讨论】:

  • 我看到您已经在使用 MELPA。你可以从那里得到jedi。别忘了sudo pip install jedi epc
  • MELPA 在我清除所有 el-get 的东西后几乎立即工作。
  • @abo-abo "pip install jedi epc" 不推荐。使用绝地:安装服务器。 tkf.github.io/emacs-jedi/latest/#jedi:install-server

标签: python emacs elisp el-get emacs-jedi


【解决方案1】:

你错过了https://github.com/dimitri/el-get#basic-setup中提到的(el-get 'sync)

另外,您不需要 (package-initialize) 等来设置 package.el。一切都由 el-get 处理。最好不要混合使用两个包管理器。

这是通过 el-get 使用 Jedi 的最小 Emacs 设置:

(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

【讨论】:

  • 当我包含(el-get 'sync) 并尝试M-x eval-current-buffer 时,它显示“错误类型参数。stringp,nil”
  • 备份 ~/.emacs.d 到另一个地方,然后从空的 ~/.emacs.d 尝试。如果它不起作用,那就是 el-get 的错误。向 el-get 问题跟踪器报告。
  • 那根本行不通。将 .emacs.d 移动到备份后,我得到了这个:el-get-convert-from-old-status-format: Opening output file: no such file or directory, /home/ely/.emacs.d/el-get/.status.el.old
  • 我尝试删除.emacs.d/el-get 的内容并重新安装,但现在我经常看到“错误的类型参数。strinp nil”。它看起来来自这个:Wrote /home/ely/.emacs.d/el-get/.loaddefs.elc byte-code: Wrong type argument: stringp, nil el-get: updating autoloads for jedi el-get: byte-compiling autoload file byte-code: Wrong type argument: stringp, nil byte-code: End of buffer [2 times]
  • 另外,重新安装el-get 看起来只是挂起。它在消息控制台中显示“正在连接到 raw.github.com”,但似乎没有做任何事情。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-15
  • 1970-01-01
  • 2017-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多