原因是 Emacs 包ob-julia.el尚未升级以支持最新的 v1.0 Julia 版本。
在这个 v1.0 版本中,readcsv
和writecsv
函数不再存在。它们已被DelimitedFiles.readdlm和DelimitedFiles.writedlm函数取代。
然而ob-julia.el仍然使用它们:
(defvar org-babel-julia-write-object-command "writecsv(\"%s\",%s)")
和
(format "%s = readcsv(\"%s\")" name file)
(format "%s = readcsv(\"%s\")"
name file))))
我已经提交了ob-julia.el 问题。但是,如果您现在还想继续使用,可能会有一个快速而肮脏的修复ob-julia.el
。只需在~/.julia/config/startup.jl
文件中添加这些行:
import DelimitedFiles
function writecsv(filename::AbstractString,ans)
DelimitedFiles.writedlm(filename,ans,',')
end
function readcsv(filename::AbstractString)
DelimitedFiles.readdlm(filename,',')
end
这将重新定义readcsv
andwritecsv
函数并使 ob-julia.el 再次工作。
有了这个修复,我现在得到:
#+BEGIN_SRC julia
1+2
#+END_SRC
#+RESULTS:
: 3
#+BEGIN_SRC julia :session mySession
1+2
#+END_SRC
#+RESULTS:
: 3
正如预期的那样。