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

I cant import System.Directory when using stack

我不太明白为什么这不起作用。

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

当我将同一个程序与堆栈一起使用时,我收到一条消息说

Failed to load interface for ‘System.Directory’ It is a member of the hidden package ‘directory-1.3.0.0’. Use -v to see a list of the files searched for.

我不明白为什么它可以与 runhaskell 一起使用,但当我使用 stack ghci

时却不行

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

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

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

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

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