【发布时间】:2021-04-09 03:02:29
【问题描述】:
各位,我决定完全重写这篇文章,以便清楚地展示它。
首先感谢大家的支持。我很感激。
这是“The Clojure Workshop - Packt”中我遇到困难的练习:
(我的 IDE 是 IntelliJ,我使用的是 Windows)。
练习 4.10:从 CSV 文件导入数据
1.在计算机上方便的地方创建一个文件夹。
我决定创建一个全新的项目。
在Leiningen or Deps之间进行选择有什么区别吗?我大部分时间都使用 Leiningen,但我应该使用 Deps,因为我要使用 deps.edn 文件吗?
2。将 match_scores_1991-2016_UNIDEXED.csv 文件下载到您创建的文件夹中。 (这里是github)
但是我应该在哪里下载这个文件?进入项目文件里面的src文件或者任何文件都可以吗?有什么区别吗?
我决定保存inside de 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)))
为此项目创建了一个新的本地 Clojure REPL。
但是当我要评估测试表达式时,它在评估第二个和第三个时显示错误。
评估“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.
我错过了什么?几天来一直在尝试解决这个问题,但我没有找到任何答案。
谢谢!
【问题讨论】:
-
很难说你遇到了什么问题。第 3 步可以用任何编辑器完成。 deps.edn 是一个文本文件。您能解释一下您尝试过的方法以及似乎不起作用的方法吗?
-
肖恩,我无法理解那些东西:“在你的编辑器中”(在 INTELIJ 中?在 REPL 中?)“在同一个文件夹中”(但文件夹在桌面上,我应该把它转移到IJ 中的 src 文件夹?)“创建一个 deps.edn 文件”(再次,在哪里?他所说的“编辑器”指的是什么?IJ、Windows PowerShell 或 txt 文件?对不起@sean 的菜鸟问题。我是从 clojure 和编程开始。
-
您是否创建了 IntelliJ 项目?如果是这样,您可以转到项目视图,右键单击顶级文件夹并转到
New -> File并创建一个deps.edn文件。deps.edn应该在项目文件夹的顶层。 -
您正在阅读的这本书可能会假设您具有更多的编程背景,因此在此之后可能会遇到其他障碍;总体而言,这是一条艰难而令人沮丧的道路。作为第一个练习的 csv 文件是一个非常陡峭的开始!您会考虑另一种入门指南吗?作为一个伟大的、可读的、有趣的介绍的例子,我会提名“Think Python:如何像计算机科学家一样思考”。当然,如果您为 Clojure 找到一个,那就更好了;但我最喜欢的“勇敢而真实的 Clojure”假定您熟悉编辑器、文件、文件夹的问题。
-
这里要明确一点:说明要您创建一个新文件夹(在任何地方)。例如。创建
ex410。然后在其中添加一个新的deps.edn文件(如果有疑问,请使用您的常规编辑器而不是 intellij 添加它,因为它想要打开项目根目录并且不是一个很好的通用编辑器),其中包含说明中的内容。然后从 intellij 打开目录。如果您安装了插件(例如草书),它应该检测到 clojure 项目。
标签: clojure clojure-java-interop clojure-contrib