[英]Why suddenly can't find module?
我在同一個文件夾中有兩個文件, Eval.hs
和Data.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.