3

GHCi (Windows 7 / Haskell Platform 2012.2.0.0) で始まるファイルを読み込もうとしています:

import Network.HTTP
import System.IO
...

しかし、私はエラーが発生します:

Could not find module `Network.HTTP'

このモジュールは HTTP パッケージですよね?したがって、実行する>cabal list HTTPと次のようになります。

* HTTP
    Synopsis: A library for client-side HTTP
    Default available version: 4000.2.3
    Installed version: 4000.2.3
    Homepage: https://github.com/haskell/HTTP
    License: BSD3

パッケージが正しくインストールされていることを意味しますか? 私は何を間違っていますか?

ありがとうございました!

4

1 に答える 1

3

パッケージをcabalでインストールしても、コードで自動的に使用できるようにはなりません。(たとえば、一部のパッケージの2つのバージョンをインストールできた可能性があるため、何を使用可能にし、何を非表示にするかを自動的に決定することはできません)。

おそらく最も簡単な解決策は、cabalを使用してプロジェクトを管理、構築、実行することです。Haskellプログラムの書き方を参照してください。セクション2では、(とりわけ)Cabalに必要なファイルを設定する方法について説明しています。特に、cabalファイルには次のような行が含まれます。

build-depends: base, HTTP

Cabalユーザーガイドも参照してください。


編集:次のことを試すことができます:

test.cabal以下を含むファイルを作成します。

Name:                test
Version:             0.0
Description:         My network program
Build-Type:          Simple
Cabal-Version:       >=1.2

Executable test
  Main-is:           Test.hs
  Build-Depends:     base >= 4 && < 5, HTTP

(ソースファイルに置き換えTest.hsます。)次に、

cabal install --only-dependencies

これにより、必要なすべての依存関係がインストールされます。すべてがうまくいけば、プロジェクトを構成してビルドできます。

cabal configure
cabal build

プロジェクトと対話的に作業するには、 cabal-ghciを使用できます。私はそれを試していませんが、それはあなたが必要としているものかもしれないようです。

于 2012-08-10T06:45:14.160 に答える