2013-10-29 44 views
6

我在我的文件的頂部進口快速檢查:找不到模塊'Test.QuickCheck」在Ubuntu

import Test.QuickCheck 
... 

編譯與ghc Lab1.hs文件給了我這個錯誤:

Lab1.hs:1:8: 
    Could not find module `Test.QuickCheck' 
    Use -v to see a list of the files searched for. 
Failed, modules loaded: none. 

我嘗試了一個apt-cache搜索quickcheck,並得到了一個可怕的軟件包列表。試圖安裝libghc-test-framework-dev只是因爲我認爲這個名字看起來合適,但錯誤仍然存​​在。

如何安裝QuickCheck模塊?

+1

知Debian的命名方式,我猜'libghc-QuickCheck- dev',但我沒有這樣的機器,方便檢查。 –

+1

瞭解Debian的人爲驅動RPC方案(網站)後,我發現['libghc-quickcheck2-dev'](http://packages.debian.org/wheezy/libghc-quickcheck2-dev),但我沒有這樣的機器很方便安裝。 –

回答

15

如果你有興趣管理你的包管理器以外的Haskell包(如果你有興趣使用最新版本的東西,這可能是有益的),然後Cabal是Haskell包管理器,它允許你做

apt-get install cabal-install 
cabal update 
cabal install QuickCheck 

使QuickCheck全局可用。

然而,最近更推薦的是使用Cabal的​​功能。如果你更熟悉Python的話,這與Python的virtualenv或Ruby的bundle非常相似。要做到這一點,你必須創建一個「cabalized」項目

cabal init  # in an empty directory 

,然後在生成的<folder name>.cabal文件的build-depends:插槽把QuickCheck(和你的其他庫的依賴)。

完成此操作後,您可以使用Cabal進行所有進一步的包管理和編譯命令。

cabal sandbox init     # creates your local package sandbox 
cabal install --only-dependencies # gets and installs all the build-dependencies 

cabal repl       # starts up GHCi in the local sandbox 
cabal build       # configures and builds the local project 

cabal sandbox delete    # cleans up the sandbox 
+0

我做了:'sudo apt-get install cabal-install'和'cabal update',然後可以像上面一樣繼續'cabal install QuickCheck'。沙箱的東西不適合我的情況,但它可能會派上用場。謝謝! – Arild

+1

很酷,我很高興它運作良好!如果您不介意,我會將這些步驟添加到未來訪問者的答案中。 –

1

在Ubuntu中14.04.1:

sudo apt-get install libghc-quickcheck2-dev 

前:

> :m +Test.QuickCheck 

<no location info>: 
    Could not find module `Test.QuickCheck' 
    It is not a module in the current program, or in any known package. 

後:

Prelude> :m +Test.QuickCheck 
Prelude Test.QuickCheck> 
+0

這是行不通的...... – alinsoar

+0

剛剛在ubuntu上試了一次:14.04 docker image,用'docker run -i -t -rm Ubuntu:14.04',它仍然可以正常工作。不知道如何在評論中格式化代碼,但步驟是:'apt-get update; apt-get install libghc-quickcheck2-dev; ghci'後面加':m + Test.QuickCheck' –

+0

我設法安裝並使用cabal使用quickcheck。最初,只使用apt-get是不可能的。無論如何,它現在適用於我。 – alinsoar