【问题标题】:Unable to run a clojure library (clojure.data.json) from a file无法从文件运行 clojure 库 (clojure.data.json)
【发布时间】:2021-06-23 21:44:33
【问题描述】:

我无法使用添加到项目中的库。我不断收到此错误:

CompilerException java.lang.RuntimeException: No such namespace: json, compiling:

该库是 clojure.data.json 来解析 json。 我在 project.clj 依赖项中添加了库:

:dependencies [[org.clojure/clojure "1.10.0"]
             [org.clojure/data.json "2.0.1"]
             [ring "1.8.0"]]

在 core.clj 中,我需要库:

(ns todo-list.core
(:require  [clojure.data.json :as json]
         [ring.adapter.jetty :as webserver]))

我正在使用 Atom,我可以直接评估一个函数。当我评估以下函数时,出现上述错误:

(def posts (json/read-str (slurp "data.json") :key-fn keyword))

我在命令行中运行了命令:lein install。还是不行

谁能告诉我这是怎么回事?特别是我可以毫无问题地使用其他库,例如:clojure.string :as str

【问题讨论】:

    标签: clojure libraries require leiningen


    【解决方案1】:

    在 Atom 中,您是否评估了 ns 表单(或在保存后加载整个文件,一旦您添加了该 ns 表单)?

    你不能只计算一个包含 (json/read-str ..) 的表达式,除非你首先计算了 ns 表单并且需要命名空间来创建别名。

    【讨论】:

    • 嗨,肖恩。我尝试评估 ns 表单并收到此错误: FileNotFoundException Could not locate clojure/data/json__init.class or clojure/data/json.clj on classpath
    • @omar 您是否在启动 REPL 后添加了依赖项?您是否尝试过重新启动编辑器发送命令的 REPL?
    • 是的,我试过了!我什至从头开始了一个新项目。我在 project.clj 中再次添加了依赖项。我跑了 len deps :tree ,我可以看到正在添加依赖项。但是当我运行该项目时,它总是抛出错误消息。我错过了什么。好郁闷!!!
    • 它可以在命令行上运行吗?或仅在 Atom 中。您能否通过 github 或其他方式分享您对该项目的第二次尝试(假设它很小,因为您只做了最少的步骤来重现它)?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-18
    • 1970-01-01
    相关资源
    最近更新 更多