Установил диаграммы, вроде бы есть, но GHCi не находит. Я попытался добавить локальную песочницу в командную строку (-package-db), но безуспешно. Какие-либо предложения?
C:\Users\guthrie>
C:\Users\guthrie>cabal install diagrams
Resolving dependencies...
All the requested packages are already installed:
diagrams-1.2
Use --reinstall if you want to reinstall anyway.
Я нахожу это в:
C:\Users\guthrie\.cabal-sandbox\i386-windows-ghc-7.6.3-packages.conf.d
(diagrams-1.2, diagrams-contrib, -core, -lib, -svg)
Но запуск: «cabal repl» или использование флага GHC(i) «-package-db=…» не находит его:
C:\Users\guthrie>cabal repl
GHCi, version 7.6.3: http://www.haskell.org/ghc/ :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Prelude> :m + Diagrams.Prelude
<no location info>:
Could not find module `Diagrams.Prelude'
It is not a module in the current program, or in any known package.
Prelude>
уточнить; игнорируя вызовы кабалы, напрямую используя GHC/i и программу chartsDemo.hs:
-- http://projects.haskell.org/diagrams/doc/quickstart.html
--
import Diagrams.Prelude
import Diagrams.Backend.SVG.CmdLine
main = mainWith (circle 1 :: Diagram B R2)
Дает:
C:\Users\guthrie\Desktop\xFer\Graphics>ghc --make diagramsDemo.hs
diagramsDemo.hs:7:8:
Could not find module `Diagrams.Backend.SVG.CmdLine'
Use -v to see a list of the files searched for.
C:\Users\guthrie\Desktop\xFer\Graphics>ghc --make diagramsDemo.hs -package-db=C:\Users\guthrie\.cabal-sandbox\i386-windows-ghc-7.6.3-packages.conf.d
diagramsDemo.hs:7:8:
Could not find module `Diagrams.Backend.SVG.CmdLine'
Use -v to see a list of the files searched for.
diagrams
не указан как зависимость в вашем файле.cabal
, он не будет доступен изcabal repl
(неправильная функция, IMO). Вы можете обойти это с помощьюghci -no-user-package-db -package-db=./.cabal-sandbox/i386-windows-ghc-7.6.3-packages.conf.d
, для которого я сделал псевдоним в своей установке cygwin bash. - person bheklilr   schedule 20.02.2015cabal repl
, он загружает зависимости, которые вы указали для своего проекта. Вы определенно можете установить другие пакеты в песочницу, но это не означает, что они доступны для импорта. Флаг-package-db
добавляет дополнительную базу данных пакетов для сканирования, когда ghci просто ищет пакеты, но я также предпочитаю флаг-no-user-package-db
, так как он предотвращает конфликты с моей системной установкой Cabal. - person bheklilr   schedule 20.02.2015