我通过《The Clojure Workshop - Packt》这本书学习Clojure,并在几个练习中遇到了困难。
(我的IDE是IntelliJ,我在Windows上使用)。
练习4.10:从CSV文件导入数据
1. 在您的计算机上的合适位置创建一个文件夹。
由于我尝试了很多次,所以我决定创建一个全新的项目。
在Leiningen和Deps之间选择时有什么区别?我大多数时间使用Leiningen,但因为我将使用deps.edn文件,我应该使用Deps吗?
2. 将match_scores_1991-2016_UNINDEXED.csv文件下载到您创建的文件夹中。(在这里在GitHub上)
我应该在项目中创建的src文件内部或任何文件中下载此文件?这之间有什么区别?
我决定保存在src中。
3. 在您的编辑器中,在同一文件夹下创建一个deps.edn文件,其内容如下
{:deps
{org.clojure/data.csv {:mvn/version "0.1.4"}
semantic-csv {:mvn/version "0.2.1-alpha1"}}}
所以我创建了一个deps.edn文件。
4. 通过在REPL中评估以下表达式来验证一切是否正常
user> (require '[clojure.data.csv :as csv])
nil
user> (require '[clojure.java.io :as io])
nil
user> (with-open [r (io/reader "match_scores_1991-2016_unindexed_csv.csv")]
(first (csv/read-csv r)))
在创建REPL时,我应该选择“使用IntelliJ项目类路径运行”,对吗?
但是当我打算评估测试表达式时,它显示出评估第二个和第三个表达式时的错误。
评估"clojure.data.csv :as csv"时的错误如下
Execution error (FileNotFoundException) at csv-example.core/eval1549 (form-init2604783929697477049.clj:1).
Could not locate clojure/data/csv__init.class, clojure/data/csv.clj or clojure/data/csv.cljc on classpath.
我遗漏了什么?我已经尝试了几天来解决此问题,但没有发现任何答案。
谢谢!