环境:
- system: Arch Linux
- emacs version: GNU Emacs 25.1.1
- spacemacs version: master 0.200.7
org mode 配置文件
(defun dotspacemacs/user-config ()
(org-babel-do-load-languages
'org-babel-load-languages
'((python . t))))
在org文件中执行python代码,出现:
Evaluation of this python code block is disabled.
通过Google找到一个解决办法,就是:
rm -rf ~/.emacs.d/elpa/org-plus-contrib-20170210/
但每次重新启动 emacs 就会重新安装 org-plus-contrib package 导致 org-mode 再次无法执行 python code block
不知道大家有没有遇到这种情况
一个临时的解决办法就是启动 spacemacs 之后用 M-x org-reload
重新加载 org 的配置。目前 spacemacs 中有好几个 issue 都提到了这个问题,预计过一段时间就会被修复吧。
我这边启动spacemacs后用 M-x org-reload 重新加载org配置不起作用,只有删除org-plus-contrib package才行
如果删除了 org-plus-contrib 那么用的 org 可能就是内置的旧版本的org了。
试试把你所有的 org 配置用 with-eval-after-load
封装起来,比如下面这样。不用删除 org-plus-contrib,打开一个 org 文件后,运行一下 org-reload 应该就可以 evaluate 代码块了。
(with-eval-after-load 'org
(org-babel-do-load-languages 'org-babel-load-languages
'(
(python . t)
(shell . t)
)))
应该是org-mode 9 的锅吧? 我刚升级org-mode 9 的时候遇到了这个问题然后在reddit上找到了这个网页
https://lists.gnu.org/archive/html/emacs-orgmode/2016-11/msg00045.html
当时我是通过卸载并重新安装 org-mode 解决的问题
1 个赞
我一直用 org-mode
开发版,没有问题。既然你不用它,为什么不放到 dotspacemacs-excluded-packages
排除掉。
spacesmace
的开箱即用是优点,某种程度上说也正是它的缺点,大量你没用到的/没想到的功能,不定哪天就出 bug。
你最近把哪些 Packages 从你的 Emacs 配置中移除掉了?
2 个赞
问题已解决:
1. dotspacemacs-excluded-packages '(org-plus-contrib)
2. 将 package-selected-packages 里的org-plus-contrib移除
3. 重新安装org-mode package
首次在这里发帖,非常感谢大家的帮助!
更简单的办法是到 .emacs.d/elpa/
路径下把 org-plus-contrib
文件夹删除 rm -rf org-plus-contrib
(tab 补全),然后重启 emacs 就行了,spacemacs 会自动开始安装。这样只需要重启一次。
aiden
9
可以 M-x
依次试一下下面两个函数:
byte-recompile-directory
byte-forece-recompile
参考这个 issue, 我解决了.
Org-Mode Evaluation of code disabled
yanzt
10
在.spacemacs 中执行recompile-elpa
我的是这样就好了