2017-09-17 3 views
2

Je suis un peu confus au sujet de pourquoi cela ne fonctionne pas.Je ne peux pas importer System.Directory lors de l'utilisation de la pile

J'ai un petit programme qui importe System.Directory. Quand je l'exécute avec runhaskell sur la ligne de commande, il compile et affiche ce que j'attends.

Lorsque j'utilise le même programme avec pile, je reçois un message disant

Impossible de charger l'interface pour « System.Directory » Il est membre du paquet caché "répertoire 1.3.0.0. Utilisez -v pour voir la liste des fichiers recherchés.

Je ne comprends pas pourquoi il travaillerait avec runhaskell mais pas quand j'utiliser stack ghci

+0

Stack ne pas utiliser votre environnement os. Vous venez d'ajouter 'direcotry' dans la section' build-depends' du fichier cabal. – palik

Répondre

2

Avec les informations que vous donnez, je ne peux essayer de deviner ...

Je pense que vous avez directory (globalement) installé avec cabal install directory ou comme un paquet de système - cela expliquerait runhaskell myscript.hs de travail.

Si vous utilisez stack vous avez les options suivantes.

  1. Organisons cabale, ajouter directory à la construction section dépend, créez un stack.yaml et exécutez stack ghci dans le répertoire du projet.

  2. utilisation stack ghci --package=directory myscript.hs

+0

J'ai regardé 'ghc-pkg list' Je suppose que c'est tous les paquets qui sont installés que runhaskell utiliserait? Je n'avais pas réalisé que tout était là. Merci! – Matthew