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

Haskell环境下ghci加载自定义Figures.Point模块找不到报错求助

问题复现

相关代码

Circle.hs

module Figures.Circle 
( Circle(..)
  , getArea
  , getPerimeter
) where

import qualified Figures.Point as P

Point.hs

module Figures.Point  
( Point(..)  
) where  

目录结构

  • Figures/
    • Point.hs
    • Circle.hs

报错信息

Circle.hs:7:1: error:
    Could not find module `Figures.Point'
    Locations searched:
      Figures\Point.hs
      Figures\Point.lhs
      Figures\Point.hsig
      Figures\Point.lhsig
  |
7 | import qualified Figures.Point as P
解决方案
  • 方法1:调整ghci启动目录
    你大概率是在Figures目录内直接启动的ghci,此时ghci会在当前目录下搜索Figures/Point.hs,自然找不到对应文件。切换到Figures目录的上级目录启动ghci,加载模块时使用全路径:
    输入命令:load Figures/Circle.hs即可正常加载。
  • 方法2:启动时指定源根目录
    如果你需要在Figures目录内操作,启动ghci时添加-i参数指定上级目录为源根目录即可:
    输入命令ghci -i../,之后再加载Circle.hs就不会报找不到模块的错误。
  • 方法3:配置项目构建文件(长期项目推荐)
    如果是正式项目,建议创建cabal或stack配置文件,将Figures所在的上级目录添加到sourcedirs(cabal)或source-dirs(stack)字段中,后续无需手动指定目录即可正常识别模块路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 20:57:02