我知道这似乎与Could not find module `Yesod'重复,但与那个用户不同,ghc-pkg list
它没有显示Yesod
在我的计算机上的输出中,他们似乎没有使用stack
(我是,我不确定是否意味着我不需要担心ghc-pkg list
),此外,该问题的答案(代码)对我的情况没有帮助。
Yesod Book有一个例子,我已经尝试了几个小时开始工作。我会在这里转载
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeFamilies #-}
import Yesod
data HelloWorld = HelloWorld
mkYesod "HelloWorld" [parseRoutes|
/ HomeR GET
|]
instance Yesod HelloWorld
getHomeR :: Handler Html
getHomeR = defaultLayout [whamlet|Hello World!|]
main :: IO ()
main = warp 3000 HelloWorld
我正在使用最新的 64 位 Ubuntu 操作系统。我一直遇到的问题是runhaskell hello-world.hs
会一次又一次地返回
hello-world.hs:6:18:
Could not find module `Yesod'
Use -v to see a list of the files searched for.
同样,当我module
向文件添加名称并尝试使用stack ghci hello-world.hs
. 我stack
用来构建东西,我已经尝试了许多不同的迭代stack new
(使用 yesod 模板)、stack init
和stack build
's left 和 right、stack update
's here and there's here and there for good measure,甚至一些cabal install
's,以及Yesod 快速入门指南的全部内容,都无济于事,并且都在正确的目录中。
当我将 Yesod 模板与 一起使用时simpleSQL
,模板站点会正确加载,而且我正在使用的一个更大的项目Snowdrift也可以运行(尽管作为站点,使用stack exec yesod devel
而不是runhaskell FILE
命令;但它仍然有效,并且我已经尝试过完全相同的构建过程来处理hello-world.hs
上面的文件。
我觉得这个问题有一个我想念的简单解决方案,但我已经尝试过,到处搜索,我只是没有找到答案。
非常感谢您花时间帮助我。