本文介绍了我不能在使用堆栈时导入System.Directory的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



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



当我在堆栈中使用相同的程序时,

我不明白为什么它能与 runhaskell 但不是当我使用 stack ghci

解决方案



我认为你有目录 code> cabal安装目录或作为系统软件包安装 - 这可以解释 runhaskell myscript.hs 如果您使用 stack ,您可以选择以下选项。

$ b


  1. 创建一个cabal包,将目录添加到build depends部分,创建一个堆栈.yaml 并在项目目录中运行 stack ghci

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



I am little confused about why this doesn't work.

I have a small program that import System.Directory. When I run it with runhaskell on the command line it compiles and outputs what I expect.

When I use the same program with stack I get a message saying

I dont understand why it would work with runhaskell but not when i use stack ghci

解决方案

With the information you give, I can only attempt a guess…

I think you have directory (globally) installed with cabal install directory or as a system package - this would explain runhaskell myscript.hs working.

if you use stack you have the following options.

  1. make a cabal package, add directory to the build depends section, create a stack.yaml and run stack ghci inside the project directory.

  2. use stack ghci --package=directory myscript.hs

这篇关于我不能在使用堆栈时导入System.Directory的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-31 15:17