关于史莱姆:天堂中导入Clojure Libs的麻烦

Troubles Importing Clojure Libs in Paradise

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

我在我的类路径上拥有所有的Incanter(如果您不知道,请检查一下:非常棒)。我尝试这样导入它(通过Slime REPL):user> (use 'incanter.core),但是失败。

这样做:user> (use 'clojure.contrib.def)正常工作,并且此文件在我的类路径上的同一位置。

无论如何,该错误与classpath无关:是这样的:

1
2
Don't know how to create ISeq from: clojure.lang.Symbol
  [Thrown class java.lang.IllegalArgumentException]

您可以在此处看到我的整个终端机(屏幕截图)。

我不知道这里发生了什么,这真令人沮丧,因为我真的很想使用Incancter,而我可以从Incanter二进制文件的REPL中进行操作。我绝对不希望从中得到发展,这应该行得通。

任何帮助将非常感激。

编辑:

好像Incanter需要Clojure 1.2,而lein swank给了我Clojure 1.1。这可能是我遇到问题的原因:如果是这样,是否可以继续在Clojure 1.2中使用Swank&Lein?

再次感谢!

编辑:

显然,如果您开始使用Clojure-1.1和lein swank,除非您创建新项目,否则您将一直受其困扰。

如果将来的人有这个问题,这篇文章可以帮助我,但至少对我来说,如果您使用leink swank和Clojure-1.1启动了一个新的lein项目,则必须启动它。仅仅更改project.clj文件,然后再次lein swank ing不起作用。


是的,您可以在Clojure 1.2中使用Leiningen和swank-clojure。您可能需要使用Leiningen的最新版本(我不确定某个旧限制是否仅影响lein repl还是lein swank;无论如何,请尝试在下载中找到的1.2-RC2 GitHub上的部分)。您还需要使用足够近的swank-clojure。我自己使用流水线结帐功能,请在这里付款。

除此之外,只需对Clojure和contrib使用1.2罐即可。 (Lein内部使用它自己的Clojure,与lein swank所用的Clojure分开使用,您不需要关心它; swank-clojure没有AOT的命名空间,也不特别关心Clojure的版本,除非(一次!)一次中断,但出现问题时会应用补丁并恢复欢乐。)

希望以上内容能对您有所帮助,但如果没有帮助,您的问题说明并不足以让我清楚地了解正在发生的事情。您能否添加有关"所有Incanter"出现在类路径上的信息(您是指jar s源吗?从何处获得它们?如何设置类路径?)。如果不知道这一点,将很难复制您的设置以尝试查找问题的根源。
当然,如果碰到某些版本可以解决问题,请忽略我当前的困惑。 ;-)