You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Haskell运行HTTP GET示例找不到Network.HTTP模块、cabal检测不到GHC怎么办

问题原因
  1. Could not find module 'Network.HTTP'报错是因为依赖包选择错误:Network.HTTP属于名为HTTP的第三方包,你执行安装的network是Haskell底层网络基础库,仅包含socket等低层接口,不包含HTTP相关高层封装,就算安装成功也无法解决模块找不到的问题。
  2. cabal提示找不到符合版本要求的ghc,是因为cabal运行时的环境变量和当前shell的环境变量不一致,常见于使用ghcup做多版本ghc管理、开发容器/虚拟环境的场景,cabal没有读取到你当前激活的ghc安装路径。
解决方案

推荐优先使用项目级依赖配置,避免全局安装依赖污染本地环境,这也是Haskell生态的标准实践:

  • 打开项目根目录下和项目同名的.cabal配置文件(你当前场景下应为api-exercises.cabal),找到可执行程序对应的build-depends配置段,添加HTTP包依赖:
executable api-exercises
  main-is:             Main.hs
  other-modules:       Lib
  build-depends:       base >=4.14 && <5,
                       HTTP >= 4000.3.0,
                       api-exercises
  default-language:    Haskell2010
  • 执行cabal update更新本地的包索引列表
  • 执行cabal build编译项目,cabal会自动匹配你本地的ghc版本下载对应依赖,无需手动全局安装。

如果需要单独修复cabal找不到ghc的问题,可以按以下步骤操作:

  • 执行which ghc获取当前ghc的绝对安装路径
  • 执行cabal命令时手动指定ghc路径即可:
cabal install --lib HTTP --with-ghc=<替换为上一步输出的ghc绝对路径>

内容的提问来源于stack exchange,提问作者Poperton

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 20:24:04