データファイルをカバールdistにパッケージ化することはできません。 getDataFileName
で生成されたディレクトリは、パッケージのインストール後に存在しません。getDataFileNameは存在しないディレクトリを返します
Main.hs:(ファイルを閲覧した後Leksahによって生成された)mypackage.cabal
module Main (
main
) where
import Paths_mypackage
main = do file <- getDataFileName "mydata.txt"
putStrLn file
print =<< readFile file
:
data-files: /Users/peter/Documents/haskell/mypackage/data/mydata.txt
mydata-dir: ""
出力:
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
.cabalファイルでは絶対パスを使用しないでください。すべてのデータファイルはパッケージディレクトリの下にあり、相対パスで参照される必要があります。 –
ああ私が言及すべきである、キャバルファイルは、Leksahによって生成されます。私はそれを投稿に追加します(それを手動で編集して、そのように動作するかどうかを確認します)。 –
それは役に立たなかった。ディレクトリ '〜/ .cabal/share/mypackage-0.0.1 /'はまだ存在しません。 –