Pregunta

No puedo hacer que los archivos de datos se empaqueten en un Dist Cabal. El directorio que se produce con getDataFileName No existe después de instalar el paquete.

Main.hs:

module Main (
    main
) where

import Paths_mypackage

main = do file <- getDataFileName "mydata.txt"
          putStrLn file
          print =<< readFile file

mypackage.cabal (generado por leksah después de navegar para el archivo):

 data-files: /Users/peter/Documents/haskell/mypackage/data/mydata.txt
 mydata-dir: ""

Producción:

mypackage: /Users/peter/.cabal/share/mypackage-0.0.1/mydata.txt: openFile: does not exist (No such file or directory)
/Users/peter/.cabal/share/mypackage-0.0.1/mydata.txt
¿Fue útil?

Solución

Las líneas en el archivo .cabal deben ser

data-files: mydata.txt
data-dir:   data

Entonces Cabal instalará el archivo de datos en la ubicación apropiada, /Users/peter/.cabal/share/mypackage-0.0.1/mydata.txt En su caso, y el programa funcionará.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top