簡體   English   中英

為什么突然找不到模塊?

[英]Why suddenly can't find module?

我在同一個文件夾中有兩個文件, Eval.hsData.hs , Eval.hs 中的模塊在Eval.hs中導入模塊TI.Data ,當我嘗試在Eval.hs Data.hs (在 emacs haskell 模式下: Ctrl-c, Ctrl l ),說找不到Data.hs中定義的模塊,但是之前加載成功,怎么突然就找不到了?? 順便說一句,我注意到我第一次執行Ctrl-c, Ctrl l時,交互式 window:

GHCi, version 6.12.1: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Prelude> :cd ~/.cabal/                                                          
Prelude> :load "../hs/TI/Eval.hs"                                               

../hs/TI/Eval.hs:2:7:                                                           
    Could not find module `TI.Data':
      Use -v to see a list of the files searched for.
Failed, modules loaded: none.

在 Emacs 上,我有時會遇到同樣的問題。 我的解決方法是

Prelude> :cd ~/hs/TI
Prelude> :load "Eval.hs"

現在,當您要重新加載必須使用的模塊時

Prelude> :r 

而不是 Ctrl-C,Ctrl-l。

如果有人知道更好的方法,請告訴我。

-deech

只需運行

:set -isrc -imyothersrcdir

添加任何源目錄。 您可以將此行放在運行 GHCi 的目錄中的 .ghci 文件中。

或者,只需使用 cabal repl,它會根據您的 cabal 文件為您執行此操作。

嘗試:

Prelude> :cd ~/hs
Prelude> :load "TI/Eval.hs"

如果模塊實際上像Subdirectory.Contains.A那么工作目錄需要是目錄Subdirectory

嘗試添加

(inferior-haskell-find-project-root nil)

到您的自定義設置變量。 它將不再:cd。

一個更好的解決方案是找出為什么inf-haskell.el中的 function 不能正常工作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM