【问题标题】::use fails in lein project:在 lein 项目中使用失败
【发布时间】:2013-09-18 03:44:43
【问题描述】:

当我尝试使用时

   (ns eight-puzzle.core
      (:use [clojure.contrib.seq :only (positions)]))

我收到此错误

java.io.FileNotFoundException: Could not locate clojure/contrib/seq__init.class or        clojure/contrib/seq.clj on classpath: 
          RT.java:443 clojure.lang.RT.load
          RT.java:411 clojure.lang.RT.load
        core.clj:5530 clojure.core/load[fn]
        core.clj:5529 clojure.core/load
      RestFn.java:408 clojure.lang.RestFn.invoke
        core.clj:5336 clojure.core/load-one
        core.clj:5375 clojure.core/load-lib[fn]
        core.clj:5374 clojure.core/load-lib
      RestFn.java:142 clojure.lang.RestFn.applyTo
         core.clj:619 clojure.core/apply
        core.clj:5413 clojure.core/load-libs
      RestFn.java:137 clojure.lang.RestFn.applyTo
         core.clj:621 clojure.core/apply
        core.clj:5507 clojure.core/use
      RestFn.java:408 clojure.lang.RestFn.invoke
     NO_SOURCE_FILE:1 eight-puzzle.core/eval8699[fn]
     NO_SOURCE_FILE:1 eight-puzzle.core/eval8699

当我尝试导入任何内容时,就会出现这个问题。我在设置 clojure 时做错了吗?

【问题讨论】:

  • 这是一个带有 project.clj 文件的 lein 项目还是使用 clojure.jar 运行的单个文件?
  • 是的,这是一个 lein 项目。这有什么不同吗
  • 您的 project.clj 文件是否包含 [org.clojure/clojure-contrib "1.2.0"] 依赖项?

标签: clojure namespaces leiningen


【解决方案1】:

对于由 Leiningen 管理的项目,外部依赖项应在 project.clj 文件中的 :dependencies 键下指定。

(defproject project1 "0.0.1"
  :description "Something"
  :dependencies [[org.clojure/clojure "1.5.1"]
                 [org.clojure/clojure-contrib "1.2.0"]
                 [clj-time "0.6.0"]])

注意::dependencies 中的条目可以来自 maven (maven central repository) 或 Clojars

您似乎也在使用clojure.contrib。这个库已被弃用,如果可以的话,你应该upgrade。如果您只使用clojure.contrib.seq/positions,请查看此StackOverflow answer。您也可以仅使用 clojure.core 函数重新实现它:

(defn positions [pred coll]
  (for [[idx elt]
        (map-indexed vector coll)
        :when (pred elt)]
    idx))

【讨论】:

    猜你喜欢
    • 2017-08-18
    • 2011-08-02
    • 2011-05-20
    • 1970-01-01
    • 2012-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-03
    相关资源
    最近更新 更多