Windows上安装Haskell设置

30

很不幸,在工作和家里我都没有*nix盒子的访问权限。我唯一能在Windows上玩Haskell的方式。这里有人在Windows上使用Haskell吗?你们的设置是什么?

11个回答

40

免责声明:以下内容于2013年10月有效,因此很可能很快就会过时。欢迎您的编辑和评论。

以下是我为在Windows 7 x64上安装Haskell所做的步骤:

1. 安装Haskell平台

http://www.haskell.org/platform/windows.html下载并安装Haskell平台。

2. 安装Sublime Text 3

http://www.sublimetext.com/3下载并安装Sublime Text 3。

3. 在Sublime中启用包管理器

  1. 打开Sublime
  2. 打开控制台:View >> Show console
  3. 将以下代码粘贴到控制台中并按Enter键(根据这里的说明):

import urllib.request,os; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); open(os.path.join(ipp, pf), 'wb').write(urllib.request.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ','%20')).read())

  1. 打开命令面板:Tools >> Command palette
  2. 在命令面板中输入:Package Control: Install Package
  3. 选择包:SublimeHaskell

4. 安装Haskell工具

Cabal是Haskell的标准软件包管理器。您需要执行以下操作:

  1. 以管理员权限启动控制台
  2. 运行:

    cabal install cabal-install
    cabal update
    cabal install aeson
    cabal install haskell-src-exts
    cabal install ghc-mod
    cabal install cmdargs
    cabal install haddock
    

5. 安装hdevtools

在Windows上,你不能通过运行cabal install hdevtools来安装hdevtools。相反,你需要执行以下步骤:

  1. https://github.com/mvoidex/hdevtools下载适用于Windows的hdevtools源代码* (*目前不支持GHC 7.10。使用此分支来构建GHC 7.10及以上版本)

  2. 将其解压缩到某个文件夹中

  3. 进入该文件夹并运行:

runhaskell Setup.hs configure --user
runhaskell Setup.hs build
runhaskell Setup.hs install
  • 在控制台输出中查找hdevtools安装的路径。设置SublimeHaskell插件时需要使用这个路径。路径应该类似于:C:\Users\Aleksey Bykov\AppData\Roaming\cabal\bin,其中Aleksey Bykov是当前用户的名称。

  • 6. 在Sublime中设置SublimeHaskell插件:

    1. 启动Sublime
    2. 转到 Preferences >> Package settings >> SumblimeHaskell >> Settings - User
    3. 确保您的配置看起来像:

    4. {
          "add_to_PATH":
          [
              "C:/Users/Aleksey Bykov/AppData/Roaming/cabal/bin/"
          ],
          "enable_hdevtools": true
      }
      

    其中 C:/Users/Aleksey Bykov/AppData/Roaming/cabal/bin/ 是在第5步中获取的hdevtools(以及所有其他工具)已安装的路径。 4. 保存文件并重新启动Sublime

    7. Hello world

    1. 启动Sublime
    2. 创建一个新文件并立即将其保存为hello-world.hs
    3. 将以下代码放入其中:

    main::IO()
    main = putStrLn "Hello world!"
    
  • 通过点击工具 >> 构建两次来进行构建和运行(第一次为构建,第二次为运行)

  • 8. 参见

    还有一篇很好的文章:http://howistart.org/posts/haskell/1


    感谢您发布这篇优秀的文章! - McBear Holden
    1
    在我看来,这应该是被接受的答案。截至2014-05-02,它仍然完全按照上述概述的方式工作,除了一个小问题 - 如果您正在运行最新的Haskell平台安装程序,则可能无法运行cabal install haddock,而应运行: cabal install haddock --constraint=haddock==2.13.2.1 - Anders Arpi
    你和@AndersHolmström说的大部分都是对的,但对我来说,sublime找不到我安装的hdevtools或其他cabal包,结果发现它没有访问cabal的bin文件夹的权限,可能是因为我下载并运行了便携式版本的sublime。为了解决这个问题,我只需要以管理员身份运行sublime,不知道这是否安全,但对我来说解决了问题。另外,每次我启动sublime时,它都会执行“加载标准模块cabal”的任务,这是预期的行为吗? - Siamore
    我同意@AndersHolmström的观点 - 我认为这是最好的答案,但我认为cabal安装程序必须已经升级了,因为今天我没有遇到任何hdevtools的问题。一旦我安装了Haskell环境,我所需要做的就是打开cmd.exe并运行'cabal install',它会为我解决并安装hdevtools。之后,我配置了sublimehaskell插件,现在一切都正常工作! - Steve Rathbone
    今年被弃用了。 - Ray Tayek

    13

    我曾在Windows上使用Haskell,但只是被迫这样做。这并不是因为Haskell+Windows的组合特别糟糕,而是因为我不太喜欢Windows。

    我的设置基本上是以下内容:

    你可以看到,我试图获得尽可能类似Unix的环境(不使用cygwin,因为我觉得它非常令人困惑)。Vim是我最喜欢的编辑器。使用Visual Studio的原因是GHC附带的C环境并不涵盖所有Win32API。我使用CMake获得一个良好的构建环境。


    3
    Windows的“dos box”真是一坨垃圾,以我个人看法而言 :-) Console则是一个可以适当调整大小的终端窗口。MinGW带有一个终端,但其中混合了一些Unix特性,这并不总是理想的。 - Magnus
    将PowerShell加入到混合中,就可以得到一个相当强大的Haskell开发环境在Windows上。 - Raoul Supercopter

    10

    Haskell Platform 现在是 Haskell 的标准发行版之一,并且它有一个 Windows 安装程序。


    Haskell平台相对于纯GHC安装的主要优势在于,平台包含预编译的软件包,这些软件包很难在Windows上编译,因为它们需要MSys工具链。 - nponeccop
    很遗憾,自2022年起,Haskell平台已被弃用 - 请参见https://www.haskell.org/platform/。 - sean.net

    1

    似乎还没有人提到Atom,我已经使用它几周了。虽然它还不如ST3稳定成熟,但看起来很有前途,并通过插件提供cabal(部分)和ghc-mod(好)集成。


    1

    GHC是用于函数式语言Haskell的最先进的开源编译器和交互式环境。

    有一个Windows安装程序for GHC,但它适用于版本6.4.2。

    版本6.10.1的Windows .exe(而不是.msi安装程序)位于http://www.haskell.org/ghc/dist/6.10.1/ 目前还不清楚当前(GHC 6.10.1)版本何时会提供Windows安装程序。


    1
    如何在Windows 10中安装Haskell:
    步骤01:打开Windows Powershell(以管理员身份运行),并按照指示运行以下命令:
    命令1:命令=Get-ExecutionPolicy,如果返回“Restricted”,则运行此命令=Set-ExecutionPolicy AllSigned
    命令2:命令=Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol=[System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1')) (注意:每当它询问时输入“Y”,然后按Enter键)
    步骤02:在Windows Powershell(以管理员身份运行)中运行以下命令:
    命令=choco install haskell-dev haskell-stack (注意:每当它询问时输入“Y”,然后按Enter键) 运行此命令后关闭Powershell。
    步骤03:验证是否正确执行了所有步骤:
    打开命令提示符并运行以下代码: 命令=ghc --version 输出应为=The Glorious Glasgow Haskell Compilation System,版本9.2.1 (最小化命令提示符)
    如何运行简单代码并获取输出:
    步骤01:打开命令提示符并逐个运行以下命令:
    cd \ cls mkdir dev cd dev cls notepad hello.hs Notepad会打开,现在编写以下程序并保存:
    程序: main = do print "My first Haskell program" name <- getLine print ("Hello, " ++name)
    编写并保存
    步骤02:要运行程序,请打开之前最小化的命令提示符并运行以下命令:
    命令=
    ghc hello.hs hello
    您应该会得到输出:My first Haskell program。
    要在vs code中使用相同的程序:在完成上述步骤后,在C驱动器dev文件夹中打开(用vs code打开)hello.hs文件,然后在扩展中安装Haskell Syntax Highlighting,并在终端中运行相同的命令。选择命令提示符作为默认选项,而不是Windows Powershell。 (注意,在vs code中打开.h文件之前,请确保删除除hello.hs文件以外的所有其他文件。)

    0

    在Windows上安装它比在Mac上困难和痛苦得多(几乎所有开发软件都是如此)。 话虽如此,以下是在Windows 10上设置Haskell环境的最简单方法:

    以管理员身份打开PowerShell(右键单击并“以管理员身份运行”)。

    1 在PowerShell中,按以下方式检查您的执行策略:

    Get-ExecutionPolicy
    

    2 如果您得到了“受限制”的提示,您需要进行更改。执行以下命令:

    Set-ExecutionPolicy Bypass -Scope Process
    

    当你收到一个问题提示时,请输入:

    A
    

    按下回车键。

    4 使用 Get-ExecutionPolicy 再次验证你的策略。现在你的策略应该是“Bypass”。

    5 请务必确认你已经安装了 Chocolatey:

    choco
    

    6 安装 Haskell:

    choco install haskell-dev
    

    这需要一些时间...

    7 在 Haskell 中开始编码!

    http://learnyouahaskell.com/starting-out


    0

    我记得以前有一段时间我成功地使用了hugs。不过那只是我玩玩而已。


    拥抱的问题在于它... 有点过时。我曾经使用ghc,但由于大学课程需要,不得不转回使用hugs。我感受到了许多东西的缺失(老实说,甚至从6.10降级到6.8也能感受到)。 - Maciej Piechotka

    0

    -1
    你可以安装Sun的VirtualBox,并在其中安装Linux。

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接