Question

Je ne peux pas obtenir des fichiers de données à emballer dans une cabale dist. Le répertoire qui est produit avec getDataFileName n'existe pas après l'installation du package.

Main.hs:

module Main (
    main
) where

import Paths_mypackage

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

mypackage.cabal (généré par Leksah après la navigation du fichier):

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

Sortie:

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
Était-ce utile?

La solution

Les lignes du fichier .cabal doivent être

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

Ensuite Cabal installera le fichier de données dans l'emplacement approprié, /Users/peter/.cabal/share/mypackage-0.0.1/mydata.txt dans votre cas, et le programme fonctionnera.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top