加载模块“Distribution.Simple”时出现问题

Problem with loading module ‘Distribution.Simple’

我正在尝试使用 stack 在 Haskell 中构建一个新项目(GHC 版本 8.10.4,堆栈版本 2.7.3,cabal 版本 3.6.2.0),但当时运行 命令 stack setup 我(令人惊讶地)得到了以下错误:

Setup.hs:2:1: error:
    Could not load module ‘Distribution.Simple’
    It is a member of the hidden package ‘Cabal-3.2.1.0’.
    You can run ‘:set -package Cabal’ to expose it.
    (Note: this unloads all the modules in the current scope.)
    Use -v (or `:set -v` in ghci) to see a list of the files searched for.
  |
2 | import Distribution.Simple
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^

此外,值得注意的是,我试图在 Internet 上寻找不同的解决方案,但没有找到适合我的解决方案。总体思路是在此处将 Cabal 显式添加到 package.yaml 文件中:

library:
  source-dirs: src
  dependencies:
    - Cabal

但这并没有挽救我的处境。我能够在没有这一步的情况下构建项目(好吧,只是跳过了那部分),但我有兴趣解决这个问题。

此外,当我尝试构建 Haskell 包 timeit 时(例如,使用命令行),在执行时出现相同的错误 runhaskell Setup.hs configure.

有趣的是,我以前没有这个问题(可能是我更新GHC后出现的)。

有人知道如何处理此类问题吗?有什么办法可以重新安装 GHC、cabal 或 stack(如果有帮助的话)?很高兴看到任何评论和解决方案。

我遇到了同样的问题。 正在删除文件

~/.ghc/*/environments/default

(或整个文件夹 .ghc)解决了 stack setup 问题。

它们似乎以某种方式与堆栈的操作交互。

而不是删除

~/.ghc/*/environments/default

文件,只需将Cabal包添加到其中,包括版本号,如果你运行命令就可以找到它:

ghc-pkg list