байт-код: значение символа как переменной недействительно: org-babel-tangle-lang-exts

У меня Emacs работал довольно хорошо, а затем я перезагрузил компьютер. Теперь этот блок кода не позволяет мне загружать мои файлы инициализации:

(require 'ob-clojure)
(org-babel-do-load-languages
     'org-babel-load-languages
     '((emacs-lisp . nil)
       (R . t)
       (python . t)
       (js . t)
       (scheme . t)
       (C . t)
       (clojure . t)
       (lilypond . t)
       (octave . t)))

Я не знаю, почему это может быть. Я заставил babel нормально работать с R, прежде чем перезапустить. Теперь я получаю сообщение:

байт-код: значение символа как переменной недействительно: org-babel-tangle-lang-exts

Я искал в каталоге все, что упоминает org-babel, и появилось только приведенное выше выражение. Это плюс тот факт, что остальная часть моего кода init-файлов загрузилась, когда я избавился от него, заставляет меня думать, что проблема в этом коде. Но почему org-mode ссылается на функцию, которой у меня нет?

Запуск emacs --debug-init дал:

Отладчик ввел ошибку Лиспа: (void-function org-babel-do-load-languages) (org-babel-do-load-languages ​​(quote org-babel-load-languages) (quote (... ... ... ... ... ... ... ...))) eval-buffer(#load‹2>> nil "/home/kca/.emacs.d/init-org.el" nil т) ; Чтение в позиции буфера 3080 load-with-code-conversion("/home/kca/.emacs.d/init-org.el" "/home/kca/.emacs.d/init-org.el" nil nil) load("init-org") eval-buffer(# nil "/home/kca/.emacs.d/init.el" nil t) ; Чтение позиции буфера 1464 load-with-code-conversion("/home/kca/.emacs.d/init.el" "/home/kca/.emacs.d/init.el" t t) load("/home /kca/.emacs.d/init" t t) #[nil "\205\264

Я попытался проверить, загружается ли правильная версия организационного режима:

M-x load-library
org
M-x org-version
=> Org-mode version 7.7

Вот код в init.el, который его загружает:

(add-to-list 'load-path (concat conf-dir "org-7.7/lisp"))
(add-to-list 'load-path (concat conf-dir "org-7.7/contrib/lisp"))

Я использую Emacs 23.2 и Org-7.7. Спасибо за вашу помощь!


person wdkrnls    schedule 25.09.2011    source источник


Ответы (2)


На самом деле, проблема была в том, что я не понимал инструкций руководства организации. Очевидно, мне нужно было поместить (require 'org-install) и (require 'ob-tangle) в мой файл инициализации, чтобы получить грамотные функции программирования. Однако я не уверен, как я заставил R работать в Babel раньше. О, теперь это работает! Подсказка: edenc на irc-канале #org-mode.

person wdkrnls    schedule 29.09.2011

Попробуйте перезагрузиться снова. Тогда читайте остальное здесь, если это не помогло...

Используйте двоичный поиск вашего файла инициализации, чтобы определить, какой код вы загружаете, что является проблемой.

Убедитесь, что вы загружаете исходный код (*.el, а не *.elc) проблемного кода.

Установите для debug-on-error значение non-nil, чтобы получить обратную трассировку, которая расскажет вам что-то о контексте ошибки.

Если ошибка полностью содержится в каком-то внешнем пакете, убедитесь, что все ваши файлы для этого пакета относятся к одной и той же версии пакета.

Если единственное, что вы изменили, это перезагрузка, то, возможно, проблема в переменной среды. Можно предположить, что по какой-то причине ваша переменная load-path не имеет правильного значения, поэтому загружаются не все файлы, которые вам нужны. Или, может быть, вы переместили часть кода этого пакета?

ХТН. Должно помочь вам начать узнавать больше о проблеме.

person Drew    schedule 26.09.2011