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 回答