getDataFileName retourne un répertoire inexistant
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
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