2010-11-13 16 views
5

Jestem nowy w Haskell. Jak to się stało, gdy próbuję użyć Days z Data.Time otrzymuję ten błąd:Importowanie modułów 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. 

jestem z importowaniem Data.List i Control.Monad, a nie daje mi ten komunikat o błędzie, ale kod import Data.Time robi.

Czego mi brakuje?

Dzięki za pomoc!

EDIT: Dostaję podobny komunikat o błędzie, gdy używam: import Directory

Dzięki chłopaki, wasze odpowiedzi dostał mnie na torze!

+2

Z komunikatu o błędzie zakładam, że używasz kabały do ​​zbudowania projektu. W takim przypadku musisz podać listę pakietów, od których zależy twój projekt w pliku cabal. Myślę, że składnia jest podobna do "build-depends: time, directory"; Jestem pewien, że ktoś tutaj będzie znał dokładną składnię, jeśli to nie jest to. –

+0

Używam Leksah. Może za pomocą Cabala za kulisami i muszę ręcznie skonfigurować kompilację ??? –

Odpowiedz

10

Odpal Leksah za pomocą tego projektu, otwórz menu pakietu i wybierz "edytuj pakiet" z niego. Teraz wybierz "zależności" i dodaj zależność, której potrzebujesz (w twoim przypadku: time). Możesz także wybrać wersję.

PS: Nie zapomnij o naciśnięciu przycisku "zapisz". (Myślę, że to błąd projektu ...).

4

Po prostu edytuj pliki projektów .cabal, zwykle w górnym katalogu o nazwie ProjectName.cabal i znajdź wiersz (y) z "build-depends:" i dodaj "time" do tej listy. Nie potrzebujesz Leksah, chyba że już go używasz.

EDIT: Aby odpowiedzieć na pytanie „dlaczego teraz a nie z modułem X”

Data.Time znajduje się w pakiecie time, który widocznie nie jest wliczone w zależności kompilacji. Podobna historia dla modułu Directory. Nie dostaniesz tych błędów z Data.List lub Control.Monad, ponieważ są one częścią pakietu base, który, jak zakładam, znajduje się w twoich pakietach build-deps.

Na marginesie warto poświęcić trochę czasu, aby dowiedzieć się, jakie moduły są w wersji base i jaką funkcjonalność zapewniają te moduły. Baza jest dość duża i bardzo przydatna.