如何配置Haskell/ghci模块搜索路径?
How to configure Haskell / ghci module search path?
我有第一个申请文件,Myapp.hs
我创建了一个用于解析 csv 文件的模块,名为 Csvparser,它在文件 Csvparser.hs 中定义。
两个文件都在同一目录中。
我不明白如何在 Myapp.hs 中导入 Csvparser 模块
Prelude Data.Maybe Data.List Data.Time Data.Either> :load C:\Test\Haskell\MyApp.hs
[1 of 1] Compiling Main ( C:\Test\Haskell\MyApp.hs, interpreted )
C:\Test\Haskell\MyApp.hs:5:1: error:
Could not find module `Csvparser'
Use -v to see a list of the files searched for.
|
5 | import Csvparser
| ^^^^^^^^^^^^^^^^
Failed, no modules loaded.
Prelude Data.Maybe Data.List Data.Time Data.Either>
该模块可以独立加载并工作
Prelude Data.Maybe Data.List Data.Time Data.Either> :load C:\Test\Haskell\Csvparser.hs
[1 of 1] Compiling Csvparser ( C:\Test\Haskell\Csvparser.hs, interpreted )
Ok, one module loaded.
*Csvparser Data.Maybe Data.List Data.Time Data.Either> import Csvparser
*Csvparser Data.Maybe Data.List Data.Time Data.Either Csvparser> :t Csvparser.parseCSV
Csvparser.parseCSV :: String -> Either ParseError [[String]]
*Csvparser Data.Maybe Data.List Data.Time Data.Either Csvparser>
这是 MyApp.hs
第 5 行的失败语法
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE ScopedTypeVariables #-}
import Csvparser
import Database.HDBC
import Database.HDBC.ODBC
我该怎么做才能让 ghci/haskell 明白 Csvparser 模块可以在 MyApp.hs 的同一目录中找到?
如果您想 运行 ghci
从包含该文件的不同文件夹,请执行以下操作:
ghci -iC:\Test\Haskell\
-i
设置导入搜索路径然后执行:
:load C:\Test\Haskell\MyApp.hs
或者从 ghci
控制台中执行:
:set -iC:\Test\Haskell\
如果您想查看 haskell 在哪个文件夹中查找模块,只需调用:
:show paths
它应该在 module import search paths:
下打印路径列表
如果您 运行 ghci
从包含您的文件的文件夹中查找,则不需要所有这些,因为默认情况下 Haskell 将始终在当前文件夹中查找导入。
不要在 -i
和路径
之间留下 space
我有第一个申请文件,Myapp.hs
我创建了一个用于解析 csv 文件的模块,名为 Csvparser,它在文件 Csvparser.hs 中定义。
两个文件都在同一目录中。
我不明白如何在 Myapp.hs 中导入 Csvparser 模块
Prelude Data.Maybe Data.List Data.Time Data.Either> :load C:\Test\Haskell\MyApp.hs
[1 of 1] Compiling Main ( C:\Test\Haskell\MyApp.hs, interpreted )
C:\Test\Haskell\MyApp.hs:5:1: error:
Could not find module `Csvparser'
Use -v to see a list of the files searched for.
|
5 | import Csvparser
| ^^^^^^^^^^^^^^^^
Failed, no modules loaded.
Prelude Data.Maybe Data.List Data.Time Data.Either>
该模块可以独立加载并工作
Prelude Data.Maybe Data.List Data.Time Data.Either> :load C:\Test\Haskell\Csvparser.hs
[1 of 1] Compiling Csvparser ( C:\Test\Haskell\Csvparser.hs, interpreted )
Ok, one module loaded.
*Csvparser Data.Maybe Data.List Data.Time Data.Either> import Csvparser
*Csvparser Data.Maybe Data.List Data.Time Data.Either Csvparser> :t Csvparser.parseCSV
Csvparser.parseCSV :: String -> Either ParseError [[String]]
*Csvparser Data.Maybe Data.List Data.Time Data.Either Csvparser>
这是 MyApp.hs
第 5 行的失败语法{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE ScopedTypeVariables #-}
import Csvparser
import Database.HDBC
import Database.HDBC.ODBC
我该怎么做才能让 ghci/haskell 明白 Csvparser 模块可以在 MyApp.hs 的同一目录中找到?
如果您想 运行 ghci
从包含该文件的不同文件夹,请执行以下操作:
ghci -iC:\Test\Haskell\
-i
设置导入搜索路径然后执行:
:load C:\Test\Haskell\MyApp.hs
或者从 ghci
控制台中执行:
:set -iC:\Test\Haskell\
如果您想查看 haskell 在哪个文件夹中查找模块,只需调用:
:show paths
它应该在 module import search paths:
如果您 运行 ghci
从包含您的文件的文件夹中查找,则不需要所有这些,因为默认情况下 Haskell 将始终在当前文件夹中查找导入。
不要在 -i
和路径