我偶尔会遇到这个问题,并且通常可以解决这个问题,但这很令人沮丧.
我的所有Incanter(如果你不知道它,那就检查一下:它很棒)在我的类路径上.我尝试导入它(通过Slime REPL),如下所示:user> (使用’incanter.core),但失败了.
这样做:用户> (使用’clojure.contrib.def)工作得很好,这个文件在我的类路径上的同一个地方.
无论如何,错误与classpath无关:它是这样的:
Don't know how to create ISeq from: clojure.lang.Symbol
[Thrown class java.lang.IllegalArgumentException]
你可以看到我的整个终端here(截图.)
我不知道这里发生了什么,这真的令人沮丧,因为我真的想使用Incancter,而我可以使用Incanter二进制文件的REPL.我绝对不想从中发展 – 这应该有效.
任何帮助将非常感激.
编辑:
似乎Incanter requires Clojure 1.2和lein swank给了我Clojure 1.1.这可能是我遇到问题的原因:如果是这样,有没有办法继续使用Swank& Lein与Clojure 1.2?
再次感谢!
编辑:
显然,如果你开始使用Clojure-1.1和lein swank,除非你制作一个新项目,否则你会坚持使用它.
如果未来的人有这个问题,this article helped me out,但至少对我来说,如果你使用leink swank和Clojure-1.1开始它,你必须开始一个新的lein项目.只需更改project.clj文件然后再次lein swanking就行不通了.
最佳答案 是的,你可以使用Leiningen和swank-clojure与Clojure 1.2.你可能需要使用最新版本的Leiningen(我不确定某个旧的限制是否只影响了lein repl,或者它是否也是lein swank;无论如何,请尝试在下载部分中找到的1.2-RC2
GitHub).你还需要使用一个最近足够的swank-clojure;我自己使用流血边检查,得到你的
here.
除此之外,只需使用1.2罐进行Clojure和contrib. (Lein使用它自己的Clojure,与用于lein swank的那个分开,因为它的内部工作而你永远不需要关心它; swank-clojure没有AOT’d名称空间并且不特别关心Clojure版本,除了一旦进入(长!),当某些东西断裂时,就会应用补丁并恢复欢乐.)
我希望上面有所帮助,但如果没有:你的问题描述并不足以让我清楚地了解正在发生的事情.你可以添加一些关于“所有Incanter”对你的类路径意味着什么的信息(你的意思是罐子?来源?你从哪里得到它们?你如何设置你的类路径?).如果不知道这一点,将很难复制您的设置以尝试追踪问题的根源.
当然,如果碰到某些版本修复了一些问题,请忽略我目前的困惑. 😉