使用堆栈时我无法导入System.Directory

时间:2017-09-17 03:49:47

标签: haskell haskell-stack

我对为什么这不起作用感到困惑。

我有一个导入System.Directory的小程序。当我在命令行上使用runhaskell运行它时,它会编译并输出我期望的内容。

当我在堆栈中使用相同的程序时,我会收到一条消息

  

无法加载“System.Directory”的界面       它是隐藏包'directory-1.3.0.0'的成员。       使用-v查看搜索到的文件列表。

我不明白为什么它会与runhaskell一起使用,但在我使用stack ghci

时则不行

1 个答案:

答案 0 :(得分:3)

根据您提供的信息,我只能尝试猜测......

我认为您已directory(全局)安装了cabal install directory或作为系统包 - 这可以解释runhaskell myscript.hs的工作原理。

如果您使用stack,则可以使用以下选项。

  1. 制作一个cabal包,将directory添加到构建依赖部分,在项目目录中创建stack.yaml并运行stack ghci

  2. 使用stack ghci --package=directory myscript.hs