2010-11-13 135 views
5

我是Haskell的新手。为什么当我尝试使用来自Data.TimeDays我得到这个错误:导入Haskell模块

Could not find module `Data.Time': 
     It is a member of the hidden package `time-1.1.4'. 
     Perhaps you need to add `time' to the build-depends in your .cabal file. 

我进口和Data.List模块Control.Monad,也不给我这个错误消息,但代码import Data.Time一样。

我错过了什么?

感谢您的帮助!

编辑:我收到的时候我使用了类似的错误消息:import Directory

感谢球员,你的回答让我正轨!

+2

从错误消息中,我假设您正在使用cabal来构建您的项目。在这种情况下,您需要列出您的项目依赖于cabal文件中的软件包。我认为这个语法就像“build-depends:time,directory”;如果不是这样,我确定这里有人会知道确切的语法。 – 2010-11-13 01:55:25

+0

我一直在使用Leksah。也许它在幕后使用Cabal,我需要手动配置构建? – 2010-11-13 03:54:21

回答

10

用这个项目启动Leksah,打开包菜单并从中选择“编辑包”。现在,选择“依赖关系”并添加所需的依赖关系(在您的案例中为time)。你也可以选择一个版本。 PS:不要忘了点击“保存”按钮后,不要忘记。 (我认为这是一个设计失败......)。

4

只需编辑项目.cabal文件,通常位于名为ProjectName.cabal的顶部目录中,并找到“build-depends:”行并将“time”添加到此列表中。除非你已经使用它,否则不需要Leksah。

编辑:要回答你的问题“为什么现在而不是与模块X”

Data.Time是在time包,这显然不包括在你的构建依赖关系。 Directory模块的类似故事。您不会因为Data.ListControl.Monad而得到这些错误,因为它们是base包的一部分,我打赌它会在您的构建阶段。

请注意,值得花些时间了解base中的模块以及这些模块提供的功能。基地相当大,非常有用。