我偶尔会遇到这个问题,并且通常可以解决这个问题,但这很令人沮丧。
我的所有Incanter(如果你不知道它,那就检查一下:它很棒)在我的类路径上。我尝试导入它(通过Slime REPL),如下所示:user> (use 'incanter.core)
,但失败了。
执行此操作:user> (use '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 with Clojure 1.2 ?
再次感谢!
修改
显然,如果你开始使用Clojure-1.1和lein swank
,除非你制作一个新项目,否则你会坚持使用它。
如果未来的人有这个问题,this article helped me out,但也,至少对我来说,如果你使用{{1>开始它,你必须开始一个新的lein项目}和Clojure-1.1。只需更改project.clj文件,然后再次leink swank
不起作用。
答案 0 :(得分:2)
是的,你可以使用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
的Clojure分开,用于其内部工作,你永远不需要关心它; swank-clojure没有AOT'd命名空间,也不特别关心Clojure版本,除了一次(长!),当某些东西断裂时,应用补丁并恢复欢乐。)
我希望上述内容有所帮助,但如果不是这样的话:您的问题描述并不足以让我清楚地了解正在发生的事情。你可以添加关于“所有Incanter”对你的类路径意味着什么的信息(你的意思是jar
s?来源?你从哪里得到它们?你如何设置你的类路径?)。如果不知道这一点,将很难复制您的设置以尝试追踪问题的根源。
当然,如果碰到某些版本修复了一些问题,请忽略我目前的困惑。 ; - )