【问题标题】:Haskell "Could not find module ---" QuipperHaskell“找不到模块---”Quipper
【发布时间】:2013-08-05 04:05:27
【问题描述】:

我对 haskell 非常陌生,我一直在网上搜索,但我无法解决我的问题。我下载了 Quipper package 但我无法让 haskell 识别所有模块和文件的位置以及如何正确链接所有内容。

我已经下载了所有文件和程序并正确安装了它们,我只是不知道如何让 haskell 识别 quipper 库和模板。我每次尝试:

:load And_gate.hs 或其他文件。

我明白了:

Could not find module "Quipper" 或其所需的相应模块。

我不认为这是错误或任何事情,我认为这只是我对 haskell 的工作原理缺乏了解。

我使用的是 Windows 7。

【问题讨论】:

  • 你还没有准确解释你的安装过程是什么,你能澄清一下吗?

标签: haskell module quantum-computing


【解决方案1】:

所以我给创建 Quipper 的教授之一 Peter Selinger 发了电子邮件。

我唯一需要做的就是在 MSYS 内部:

ghci -iC:/quipper -iC:/quipper/quipper

这会正确地遵守所有内容,并且文件可以正常运行。

这是他给我的电子邮件:

亲爱的-----,

感谢您的来信。让我看看能不能帮上忙。

您是否按照自述文件中的说明进行操作?在“建筑 各种算法和程序”,指令是运行 “制作”。这将在“测试”目录中构建所有测试 自动。

接下来,要编译 Quipper 程序,您应该使用“quipper” 位于 quipper/scripts 中的脚本。它就像“ghc”一样工作, 除了它自动包含正确的目录 搜索路径中的 Quipper 文件。在 Windows 上,您将使用 “quipper.bat”。

Quipper 并不是真的要以交互方式运行,即从 ghci 运行。 但是,如果您确实需要以交互方式运行 Quipper,我建议 使用“quipperi”脚本,也在 quipper/scripts 中。这也将 正确设置加载路径。在 Windows 中,使用“quipperi.bat”。

最后,如果您需要包含来自 ghci 的 Quipper 东西,但对于某些 原因不能或不想使用 quipperi 脚本,您需要 使用“-i”选项指定这些目录,例如

ghci -iC:/quipper -iC:/quipper/quipper

可能是在 Windows 中,您需要使用“\”而不是“/”,但我 不确定这是否有必要。

我希望这会有所帮助,--彼得

当使用 ghc 编译和 exe 时,请确保包含以下命令:

-iC:/quipper -iC:/quipper/quipper.

如果您按照 Selinger 教授的建议使用 quipper 脚本,则在 MSYS 内部执行以下操作:

导航到保存所有 Quipper 文件的文件夹,这是我的情况:

cd C:/quipper/quipper/scripts

然后输入 quipper 和你的文件在 MSYS 中的位置来编译一个 exe,如下所示:

quipper C:/quipper/tests/And_gate.hs

该文件将编译并且应该像这样打印更新:

[1 of 22] Compiling Libraries.Typeable (......

[2 of 22] Compiling Libraries.Tuple (......

等等。

exe(在本例中为And_gate.exe)将位于编译它的文件夹(C:/quipper/tests)中。您需要将其移动到包含 quipper/scripts 中的 acroread.bat 的文件夹中才能正常工作。

【讨论】:

    【解决方案2】:

    出于某种原因,此代码未打包为标准 Haskell 包。如果是的话,安装它会相当简单。实际上,README 文件中的说明看起来很糟糕(尤其是在 Windows 下,看起来您需要 MSYS 来运行 makefile)。

    您的问题可能就像告诉 GHCi 在哪个文件夹中查找文件一样简单;你可以使用:cd 命令来做到这一点。由于您使用的是 Windows,我建议您尝试使用 WinGHCi,它应该允许您使用 GUI 浏览到正确的文件夹。

    如果它不是那么简单......真的,作为一个 Haskell 初学者,你可能会很难让它工作。文档看起来非常少。

    【讨论】:

    • 这实际上有点帮助,我:cd C:/quipper/quipper 现在它说它找不到Libraries.Auxiliary 这是在C:/quipper/Libraries 更高的文件夹中。所以看起来我将不得不直接与 Quipper 的制造商交谈,或者弄清楚如何自己构建一个可安装的包。不过谢谢你的回答,我就不用四处奔波寻找解决方案了。
    • 我找到了答案,只需要:ghci -iC:/quipper -iC:/quipper/quipper inside MSYS 问他我是否可以将他的电子邮件发布到堆栈溢出以供其他人阅读。
    【解决方案3】:

    如果您将READMEINSTALLING.windows 都设置为红色,并且还做了所有操作,那么您应该将Quipper 脚本文件夹的路径添加到环境变量中。这是路径:

    quipper-*/quipper/scripts/
    

    其中quipper-*<distribution name>-<version>

    该文件夹中有两个重要的脚本。第一个是quipper.bat,它运行ghc 编译器来运行Quipper 的模块。第二个是 quipperi.bat,它是 Quipper 的 ghci 类似物。

    现在,当您添加变量路径后,您可以在 Quipper 的解释器中运行 And_gate.hs,如下所示:

    quipperi And_gate.hs 
    

    【讨论】:

      猜你喜欢
      • 2017-07-27
      • 1970-01-01
      • 2022-11-14
      • 2014-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多