首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Fay找不到fay-base

Fay找不到fay-base
EN

Stack Overflow用户
提问于 2019-09-23 15:21:05
回答 1查看 106关注 0票数 3

我想在Yesod中使用Fay,但无法进行Fay类型检查。将感谢您的任何建议。

代码语言:javascript
复制
$ stack build                                                                                                                           
[ 9 of 11] Compiling Handler.Home     ( src/Handler/Home.hs, .stack-work/dist/x86_64-linux-dkda49f7ca9b244180d3cfb1987cbc9743/Cabal-2.4.0.1/build/Handler/Home.o )                                                                 

/home/user/code/myproject/src/Handler/Home.hs:121:13: error:
    _ Exception when trying to run compile-time code:
        ghc-pkg describe error:
Timestamp 2019-05-07 18:46:44 UTC for /opt/ghc/8.6.5/lib/ghc-8.6.5/package.conf.d/package.cache
ghc-pkg: cannot find package fay-base  <- ########### Why?

GHC package manager version 8.6.5
using cache: /opt/ghc/8.6.5/lib/ghc-8.6.5/package.conf.d/package.cache
db stack: ["/opt/ghc/8.6.5/lib/ghc-8.6.5/package.conf.d"]
flag db stack: ["/opt/ghc/8.6.5/lib/ghc-8.6.5/package.conf.d"]

CallStack (from HasCallStack):
  error, called at src/Fay/Compiler/Packages.hs:70:24 in fay-0.24.0.3-CdLcUWVJEOpLCiYHkNVTai:Fay.Compiler.Packages                                                                                                                 
      Code: fayFile' (ConE 'StaticR) "HelloWorld"
    _ In the untyped splice: $(fayFile' (ConE 'StaticR) "HelloWorld")
    |
121 |             $( fayFile' (ConE 'StaticR) "HelloWorld" )
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Fay包还没有堆叠,所以我将它们作为extra-deps添加到stack.yaml

代码语言:javascript
复制
extra-deps:                                                                                                     - fay-0.24.0.3
- fay-base-0.21.1.1
- fay-dom-0.5.0.1
- fay-text-0.3.2.2
- yesod-fay-0.10.0

并以dependencies的身份登录package.yaml

代码语言:javascript
复制
dependencies:
... more dependencies ...  
- fay == 0.24.0.3
- fay-base == 0.21.1.1
- fay-dom == 0.5.0.1
- fay-text == 0.3.2.2
- yesod-fay == 0.10.0

Fay包在local package database中:

代码语言:javascript
复制
$ stack exec -- ghc-pkg list                                                                                                                                                                             
/opt/ghc/8.6.5/lib/ghc-8.6.5/package.conf.d
    Cabal-2.4.0.1
    array-0.5.3.0
    base-4.12.0.0
    ...
/home/user/.stack/snapshots/x86_64-linux-dkda49f7ca9b244180d3cfb1987cbc9743/lts-13.30/8.6.5/pkgdb
    Cabal-2.4.1.0
    Diff-0.3.4
    HUnit-1.6.0.0
    ...
    yesod-1.6.0
    yesod-core-1.6.14
    yesod-form-1.6.5
    yesod-newsfeed-1.6.1.0
    yesod-persistent-1.6.0.2
    yesod-static-1.6.0.1
/home/user/code/myproject/.stack-work/install/x86_64-linux-dkda49f7ca9b244180d3cfb1987cbc9743/lts-13.30/8.6.5/pkgdb
    fay-0.24.0.3
    fay-base-0.21.1.1
    fay-dom-0.5.0.1
    fay-text-0.3.2.2
    yesod-fay-0.10.0

但是,尝试像Fay Troubleshooting建议的那样将HASKELL_PACKAGE_SANDBOX设置为本地数据库并不起作用,因为包含字符串.stack的沙箱是ignored in yesod-fay

如果我从yesod-fay中删除检查并强制--package-db指向本地数据库,它仍然不起作用,并报告fay-base找不到fay包。

代码语言:javascript
复制
$ stack build
    /home/user/code/myproject/src/Handler/Home.hs:121:13: error:
        • Exception when trying to run compile-time code:
            Unable to compile Fay module "HelloWorld":

    ghc: <command line>: cannot satisfy -package fay-base-0.21.1.1: 
        fay-base-0.21.1.1-91eIy2f24Wa5OHg9LMre7 is unusable due to missing dependencies:
          fay-0.24.0.3-CdLcUWVJEOpLCiYHkNVTai
        (use -v for more information)

    CallStack (from HasCallStack):
      error, called at ./Yesod/Fay.hs:483:3 in yesod-fay-0.10.9999-CzTT9fyZ6636pi0gIof7Ge:Yesod.Fay
          Code: fayFile' (ConE 'StaticR) "HelloWorld"
        • In the untyped splice: $(fayFile' (ConE 'StaticR) "HelloWorld")
        |
    121 |             $( fayFile' (ConE 'StaticR) "HelloWorld" )
        |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

更新:不使用satck或cabal,而是使用在系统范围内安装的软件包,此错误不会发生。我猜问题出在我的本地堆栈包数据库中(.stack-work中的那个)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-19 01:50:03

我的结论是fay不能与stack一起工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58057449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档