Haskell 在沙箱中安装了parsec,但可以';尝试在ghci中加载文件时找不到库
tl;dr:安装了带有cabal沙箱的库,ghci仍然抱怨库丢失 我有一个目录,在那里我正在开发一些Haskell的东西。这在另一台使用ghc 7.6的计算机上可以正常工作,但现在我在另一台使用ghc 7.8.2的计算机上工作(我不知道版本是否重要),我会遇到如下错误: 前奏曲>:l解释器.hs 解析器.hs:9:8: 找不到模块“Text.parsercompbinators.Parsec” 也许你的意思是 Text.ParserCombinators.ReadPrec(从基) Text.ParserCombinators.ReadP(从基) 使用-v查看搜索的文件列表 尝试从ghci加载文件时。这些文件位于BASE/src/Lib中,其中BASE是包含Lib.cabal和所有这些文件的目录。所以我想是阴谋集团出了什么事。为了避免可怕的“阴谋集团地狱”,我在项目中制作了一个沙盒(Haskell 在沙箱中安装了parsec,但可以';尝试在ghci中加载文件时找不到库,haskell,ghc,cabal,Haskell,Ghc,Cabal,tl;dr:安装了带有cabal沙箱的库,ghci仍然抱怨库丢失 我有一个目录,在那里我正在开发一些Haskell的东西。这在另一台使用ghc 7.6的计算机上可以正常工作,但现在我在另一台使用ghc 7.8.2的计算机上工作(我不知道版本是否重要),我会遇到如下错误: 前奏曲>:l解释器.hs 解析器.hs:9:8: 找不到模块“Text.parsercompbinators.Parsec” 也许你的意思是 Text.ParserCombinators.ReadPrec(从基) Text.Pa
cabalsandboxinit
),这是我以前从未使用过的。然后我手动删除了其他与阴谋集团相关的东西,并执行了cabalinit
。我确实安装了阴谋集团--只安装了依赖项
,但实际上并没有安装任何东西(我猜是因为--只安装了依赖项?我太偏执于全局安装,以至于无法使用常规阴谋集团安装)。因此,我尝试手动将内容添加到我的.cabal
文件中(您应该这样做吗?),即:
构建取决于:
base>=4.7&&=0.5&&ghc/ghci不会自动意识到沙箱。默认情况下,它们只查看全局和用户包数据库
可以使用
cabalrepl
启动ghci,也可以遵循我文章中的回复。两者都可能需要一个最近的(1.18后)阴谋集团。太好了,我升级到了阴谋集团五号。1.19现在一切都很顺利。顺便说一句,我没有发现任何关于ghc忽略沙箱的提及;文档似乎只关注如何使用沙盒构建库,而不是如何使用沙盒进行开发。这里有我遗漏的东西吗?您可以不直接调用ghc进行开发:cabal repl、cabal build等。
containers >=0.5 && <0.6,
--
parsec == 3.1.* -- THIS is the line I added