如何让 ghci 查看我从 cabal 安装的软件包?
Posted
技术标签:
【中文标题】如何让 ghci 查看我从 cabal 安装的软件包?【英文标题】:How do I get ghci to see packages I installed from cabal? 【发布时间】:2011-03-07 08:10:44 【问题描述】:我已经使用 cabal 安装了这样那样的包,我可以使用 cabal build
构建依赖于它的程序。但是当我在 ghci 中加载相同的程序时,ghci 抱怨它“找不到模块 `such-and-such'”。
我很惊讶这并没有“正常工作”。我如何告诉 ghci 在哪里可以找到我用 cabal 安装的包?
这是我的设置:我在 Mac OS X 10.6.3 上使用 GHC 6.10.4,cabal-install 版本 0.6.2 使用 Cabal 库的 1.6.0.3 版本。
【问题讨论】:
【参考方案1】:使用cabal repl
要求 cabal 打开 GHCi 解释器,并为您的项目设置正确的设置。
【讨论】:
【参考方案2】:你需要
ghci -package such-and-such
要仔细检查 such-and-such
是否对 GHC 真正可见,请运行 ghc-pkg list | grep such-and-such
。
【讨论】:
我更喜欢这个答案,因为我不想用暴露的包弄乱全局包命名空间。奖励回合:在 ghci中,如何动态添加包?:set -package haskell-src-meta
有效。我认为您可以使用:set
设置任何ghci
/ghc
标志。喜欢:set -XTemplateHaskell
。【参考方案3】:
ghc-pkg list
在命令行会告诉你你安装的包是什么。安装的包可能会被隐藏,在这种情况下您可以使用ghc-pkg expose pkg-id
显示它。
【讨论】:
输出如下: bash-3.2$ ghc-pkg list lrucache /opt/local/lib/ghc-6.10.4/./package.conf: /Users/dominic/.ghc/ x86_64-darwin-6.10.4/package.conf: lrucache-1.0 我如何从那里转到包在的位置?然后我使用ghci -i
?
是的! ghc-pkg register such-and-such
确实是必需的魔法。谢谢!
你可能想改变你的阴谋集团偏好来做全局寄存器。将 ~/.cabal/config 更改为 user-install: False
.以上是关于如何让 ghci 查看我从 cabal 安装的软件包?的主要内容,如果未能解决你的问题,请参考以下文章