在天堂中引入Clojure Libs的麻烦

时间:2010-07-13 13:37:09

标签: clojure slime incanter

我偶尔会遇到这个问题,并且通常可以解决这个问题,但这很令人沮丧。

我的所有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不起作用。

1 个答案:

答案 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?来源?你从哪里得到它们?你如何设置你的类路径?)。如果不知道这一点,将很难复制您的设置以尝试追踪问题的根源。 当然,如果碰到某些版本修复了一些问题,请忽略我目前的困惑。 ; - )