【问题标题】:How do I get ghci to see packages I installed from cabal?如何让 ghci 查看我从 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 版本。

【问题讨论】:

    标签: haskell cabal ghci


    【解决方案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.
      猜你喜欢
      • 1970-01-01
      • 2019-07-14
      • 1970-01-01
      • 1970-01-01
      • 2012-12-14
      • 1970-01-01
      • 1970-01-01
      • 2011-12-10
      • 2022-01-17
      相关资源
      最近更新 更多