我正在尝试加载我的.hs文件但是当我 @media (max-width: 360px) {
.how-it h1 {font-size: 16px; !important;}
}
时,它会给我错误import Data.Numbers.CReal
。我已经运行了Failed to load interface for 'Data.Numbers.CReal'
,如果我cabal install numbers
出现了数字pkg,但是如果我cabal list --installed
它没有(如果我ghc-pkg list
那么它会给出很多黑线鳕警告)。它与我的非加载文件有关吗?我该如何解决这个问题?
聚苯乙烯。我知道如何导入包,但我不确定我是否正确导入这个包。
如果我没有正确解释自己,请感谢和抱歉。
答案 0 :(得分:1)
两个假设让人想起:
cabal
正在选择ghc
的不同版本及其参加工具套件而不是您的shell。您可以通过运行以下两个命令来检查这种差异:
cabal exec -- ghc --version
ghc --version
他们说同样的话吗?如果是这样,拒绝这个假设。否则你应该决定是否更喜欢shell的选择或者更好的选择(我建议更喜欢你的shell的选择)。
如果您更喜欢cabal
的选择,可以通过在命令中附加-<version>
来使用特定版本的GHC(以及其他GHC工具);例如尝试ghc-pkg-7.10.3 list
查看版本7.10.3的软件包数据库中的内容,或ghci-7.10.3
运行特定版本的REPL。您可以通过添加符号链接或类似于PATH
的
如果您更喜欢自己选择shell,可以让cabal
将该版本与cabal configure -w ghc
一起使用;或者如果您担心cabal
并且您的shell会以不同的方式解析ghc
,您可以要求使用cabal configure -w ghc-7.10.3
或类似的特定版本。
您的shell同意cabal
关于要使用的GHC版本,但您使用的是cabal沙箱。 cabal list --installed
告诉您沙箱中安装了哪些内容,但ghc-pkg list
告诉您在用户包数据库中安装了哪些内容。您可以检查这两个命令之间的差异:
cabal exec -- ghc-pkg list numbers
ghc-pkg list numbers
(如果你有一个新的阴谋集 - 不确定它出现在哪个版本 - 你也可以尝试cabal hc-pkg list
而不是cabal exec -- ghc-pkg list
。这可能是更向前兼容的方式,所以养成良好的习惯。)
如果这些打印相同的东西,拒绝这个假设。否则,您应该决定是否要继续使用沙箱(我建议继续使用沙箱)。
如果您想停止使用沙盒,可以将--ignore-sandbox
传递给cabal
。要使其永久化,请查看cabal.sandbox.config
文件,该文件将包含指向实际沙箱的指针(通常为.cabal.sandbox
)。删除配置和沙箱。您也可以通过向ignore-sandbox: True
添加~/.cabal/config
来全局忽略沙箱,但我强烈建议不要这样做。
如果要保留沙箱,则需要使用cabal exec
来满足所有GHC工具包需求,以确保选择正确的包数据库。例如,尝试cabal exec ghci
运行REPL,可以访问沙箱包数据库。
这些假设并不相互排斥:两者都可能发生。在这种情况下,我强烈建议选择最终解决方案(&#34;对所有GHC工具套件执行使用cabal exec
&#34;),因为它透明地处理这两个问题:标准GHC工具套件命令将被重写以明确引用版本化的(例如cabal exec ghc
将实际执行ghc-7.10.3
)并且环境将被设置为指向正确的包数据库。
答案 1 :(得分:0)
答案
您可以通过运行以下两个命令来检查这种差异:
cabal exec - ghc --version ghc --version
他们说同样的话吗?
是的。我不记得第二种选择,但我自己设法解决了。我特别做的是:
现在ghc-pkg list命令和cabal列表 - 已安装显示我已安装的软件包,它们可以顺利运行。
聚苯乙烯。我提供了该过程的详细信息,以防将来有人需要。仍然不确定是什么导致了这个阴谋和ghc没有显示相同的pkgs。