2010-11-13 251 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中的模塊以及這些模塊提供的功能。基地相當大,非常有用。