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?
-
您正在使用什么版本的lein? 从Leiningen 1.0.1版本开始,lein swank对我来说可以与Clojure 1.2一起正常工作,但是lein repl仍然使用Clojure 1.1。 但是,lein repl和swank都使用1.2与最新版本的lein(1.2.0-RC1)。
-
我在Java 1.6.0_20 Java HotSpot(TM)64位服务器VM上使用`Leiningen 1.1.0。 我现在终于可以正常工作了,但是我不得不开始一个新项目。 显然,如果您开始使用Clojure-1.1和lein swank,除非您创建新项目,否则您将坚持使用它。
-
一点也不。 但是,您可能需要运行lein clean从lib中删除旧的1.1 jar(或手动删除它们)。
-
我确实删除了它们-仍然有问题!
是的,您可以在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源吗?从何处获得它们?如何设置类路径?)。如果不知道这一点,将很难复制您的设置以尝试查找问题的根源。
当然,如果碰到某些版本可以解决问题,请忽略我当前的困惑。 ;-)