Yesod:卡在“七周内的七个 Web 框架”一书中

Posted

技术标签:

【中文标题】Yesod:卡在“七周内的七个 Web 框架”一书中【英文标题】:Yesod: Stuck in book "Seven Web frameworks in seven weeks" 【发布时间】:2015-05-01 18:16:45 【问题描述】:

我按照quick start guide安装了Yesod。

我买了《七周内的七个 Web 框架》这本书,我正在努力学习。我在第 204 页(第 1 天:使用模型)。当我进入

ghci Model.hs

为了将一些数据输入数据库,正如书中所说,我得到了这个:

GHCi,版本 7.8.3:http://www.haskell.org/ghc/ :?求助 加载包 ghc-prim ... 链接 ... 完成。 加载包 integer-gmp ... 链接 ... 完成。 正在加载包库...链接...完成。 模型.hs:3:8: 找不到模块“ClassyPrelude.Yesod” 使用 -v 查看搜索的文件列表。 模型.hs:4:8: 找不到模块“Database.Persist.Quasi” 使用 -v 查看搜索的文件列表。 失败,加载模块:无。

我被困住了。我是 Haskell 的新手(但不是新手)和 Yesod,所以我不知道该怎么做。

提前致谢。

【问题讨论】:

你能给我们这些没有这本书的人提供更多的细节,那么我们也许可以帮助你...... 我认为将文本作为图像发布很烦人,但将文本作为视频发布,现在很烦人。 我建议你在没有掌握 Haskell 的情况下避免学习 Yesod。 【参考方案1】:

本快速入门指南中的说明引导您为项目创建沙箱,因此您安装的依赖项仅在此沙箱中可用(这是谨慎且可以说是正确的方法,避免冲突并简化清理)。 GHCi 是 GHC 的一部分,不知道沙箱(这是一个概念,仅适用于 cabal)。

要在沙盒中启动交互式 shell,请从项目的根目录启动 cabal repl,如果 Model.hs 在 src 中,则使用 :load src/Model.hs

【讨论】:

【参考方案2】:

您似乎没有安装 classy-prelude-yesod 包。如果您安装了 cabal,您可以轻松安装任何缺少的软件包。为此,您可以在操作系统命令提示符下输入以下内容:

cabal install classy-prelude-yesod

如果您缺少任何其他包,您可以使用相同的方法。

【讨论】:

使用cabal install --only-dependencies 安装所有缺少的依赖项。 我做到了,它说一切都已安装。 你尝试安装classy-prelude-yesod吗?安装后是否出现同样的错误?

以上是关于Yesod:卡在“七周内的七个 Web 框架”一书中的主要内容,如果未能解决你的问题,请参考以下文章

退出代码 11 安装 Persistent (Yesod)

使用持久键列表选择 (Yesod)

Yesod 持久示例

独立于主机名的 Yesod 应用程序

yesod 持久性依赖缺失

Yesod/Persistent 实体派生 Show