11

我正在使用 yesod 创建一个简单的网站。

它一直在工作,直到我将 UTCTime 类型的字段添加到我的数据库模型中。

我最初收到一个错误,建议我将“time-1.2.0.3”添加到我的 cabal 文件中,所以我这样做了,现在在没有建议的情况下我得到了同样的错误:

Model.hs:6:8:
    Could not find module `Data.Time.Clock.UTC':
      it is a hidden module in the package `time-1.2.0.3'
      Use -v to see a list of the files searched for.

cabal 生成的 ghc 命令行是:

"C:\Program Files (x86)\Haskell Platform\2011.2.0.1\bin\ghc.exe" --make -o dist\build\lpi\lpi.exe -hide-all-packages -fbuilding-cabal-package -package-conf dist\package.conf.inplace -i -idist\build\lpi\lpi-tmp -i. -idist\build\autogen -Idist\build\autogen -Idist\build\lpi\lpi-tmp -optP-DPRODUCTION -optP-include -optPdist\build\autogen\cabal_macros.h -odir dist\build\lpi\lpi-tmp -hidir dist\build\lpi\lpi-tmp -stubdir dist\build\lpi\lpi-tmp -package-id base-4.3.1.0-f520cd232cc386346843c4a12b63f44b -package-id bytestring-0.9.1.10-cd85f14e02463c02ba4c77d7adcdb54f -package-id clientsession-0.7.3.6-70ebb09e2b4c14267f1463cef3c932ea -package-id hamlet-0.10.5-1bacb5fe791e5cc9e28c8cf9f07c06e2 -package-id hjsmin-0.0.14-a1d374204877c150b681896452f205f4 -package-id mime-mail-0.4.1.0-05d76f10c6f18f7178113a6d760f371a -package-id monad-control-0.3.1-092d8fe82727181557b850f795f847bc -package-id persistent-0.6.4.3-6e59b956a206ce4f4a9296367507c2b8 -package-id persistent-sqlite-0.6.2.1-d32462e51baa09b53b6fd83dae922fc7 -package-id shakespeare-css-0.10.4-f8e17e4528d3a37edee74b13441720de -package-id shakespeare-js-0.10.3-dfec6b68f60671528332da06c9799659 -package-id shakespeare-text-0.10.3-a0ae9b85c3588ff2572080a6d1cdd4c3 -package-id template-haskell-2.5.0.0-7d9b1443ac5ab69e5ed705a487990deb -package-id text-0.11.1.9-a75bb47eca7b1c98d59b7697de77ca4d -package-id time-1.2.0.3-74ef6ac31cee9aec02b036978af002d2 -package-id yesod-0.9.3.4-6339564f13b46afd787d750cf9daa3bf -package-id yesod-auth-0.7.8-94a2849a33bb6f6d4c0e15615ef22bea -package-id yesod-core-0.9.3.6-a70073f17a6f050226a91a97c305403d -package-id yesod-default-0.4.1-1f30d8d893952d0661328b681d9ce291 -package-id yesod-form-0.3.4-a84ba844c230f9847bca7c0056375179 -package-id yesod-static-0.3.2-c82f332e85e2c9ba709375b8a14040a1 -O -Wall -threaded -O2 -XHaskell98 -XTemplateHaskell -XQuasiQuotes -XOverloadedStrings -XNoImplicitPrelude -XCPP -XMultiParamTypeClasses -XTypeFamilies -XGADTs -XGeneralizedNewtypeDeriving -XFlexibleContexts .\main.hs

所以 time-1.0.2.3 肯定被引用了。

所有软件包都是在过去 24 小时内下载的,因此它们应该是最新的。

如何取消隐藏 Data.Time.Clock.UTC?

4

2 回答 2

5

我最近遇到了同样的错误,答案是

import Data.Time

代替

import Data.Time.Clock.UTC

因为第一个模块重新导出隐藏模块。

于 2011-12-21T11:37:34.430 回答
3

对我来说听起来像是阴谋集团依赖地狱的变种。如果你运行ghc-pkg list time,我猜你会看到安装了多个版本的时间。您的应用可能使用比底层库更新的版本。

在您的 cabal 文件中,尝试使用与错误消息中提到的完全相同的时间版本,看看是否可以解决问题

于 2011-12-21T06:12:30.800 回答