2012-12-10 2 views
3

У меня есть пакет был установлен с помощью междусобойчик: Data.VectorHaskell - не может найти пакет

Но когда я пытаюсь скомпилировать программу, которая имеет import Data.Vector в нем:

Drews-MacBook-Pro:Blokus-AI drewgross$ ghc --make -O2 -prof -auto-all playGame 

Grid.hs:28:8: 
    Could not find module `Data.Vector' 
    Perhaps you meant 
     Data.Tensor (from Tensor-1.0.0.1) 
     Data.Functor (from base) 
    Use -v to see a list of the files searched for. 
Drews-MacBook-Pro:Blokus-AI drewgross$ 

Команда, которую я использовал для установки было:

cabal install -p --reinstall --force-reinstalls vector 

Я сделал другие различные вещи в моей попытке получить мою программу для компиляции, но ничего не получалось. Мне бы очень хотелось просто удалить все, вернуться к квадрату и снова загрузить пакет. Как я могу это сделать?

Редактировать: дальнейшее расследование показывает, что могут быть две версии Data.Vector: 0.10.0.1 и 0.9.1, возможно, они как-то конфликтуют?

Edit: ghc-pkg check списки ошибок, но дает мне массу предупреждений, которые выглядят так:

Warning: haddock-interfaces: /Users/drewgross/.cabal/share/doc/haskell-lexer-1.0/html/haskell-lexer.haddock doesn't exist or isn't a file 

Edit: GCHi также не находит

λ> import Data.Vector 

<no location info>: 
    Could not find module `Data.Vector' 
    Perhaps you meant Data.Functor (from base) 
λ> 

Edit: ghc-pkg list vector:

Drews-MacBook-Pro:Blokus-AI drewgross$ ghc-pkg list vector 
/Library/Frameworks/GHC.framework/Versions/7.4.2-x86_64/usr/lib/ghc-7.4.2/package.conf.d 
/Users/drewgross/.ghc/x86_64-darwin-7.4.2/package.conf.d 
    vector-0.10.0.1 
Drews-MacBook-Pro:Blokus-AI drewgross$ 

и здание с флагом -v:

Drews-MacBook-Pro:Blokus-AI drewgross$ ghc --make -O2 -prof -auto-all -v playGame 
Glasgow Haskell Compiler, Version 7.4.2, stage 2 booted by GHC version 7.4.2 
Using binary package database: /usr/local/Cellar/ghc/7.4.2/lib/ghc-7.4.2/package.conf.d/package.cache 
Using binary package database: /Users/drewgross/.ghc/x86_64-darwin-7.4.2/package.conf.d/package.cache 
package Cabal-1.16.0.3-e689d8e77b2f476229954cd43b1737bd is unusable due to missing or recursive dependencies: 
    base-4.5.1.0-81d626fb996bc7e140a3fd4481b338cd directory-1.1.0.2-72e928d14fc50f31f7e6404839a15691 unix-2.5.1.1-29636eb78541401e8e00393ef5df097e 
package Tensor-1.0.0.1-a8f1a59665c3ebc4867678a14fe1460f is unusable due to missing or recursive dependencies: 
    base-4.5.1.0-81d626fb996bc7e140a3fd4481b338cd 
package binary-0.5.1.1-e62c39c3aba8093e9b9655a4a8d2bce9 is unusable due to missing or recursive dependencies: 
    base-4.5.1.0-81d626fb996bc7e140a3fd4481b338cd bytestring-0.10.0.1-9b03e69060669eabf0b20e150305c7be 
package bmp-1.2.3.2-c7572ec2bbb802bfd93fed0953c61d5d is unusable due to missing or recursive dependencies: 
    base-4.5.1.0-81d626fb996bc7e140a3fd4481b338cd binary-0.5.1.1-e62c39c3aba8093e9b9655a4a8d2bce9 bytestring-0.10.0.1-9b03e69060669eabf0b20e150305c7be 
package bytestring-0.10.0.1-9b03e69060669eabf0b20e150305c7be is unusable due to missing or recursive dependencies: 
    base-4.5.1.0-81d626fb996bc7e140a3fd4481b338cd 
package ghc-paths-0.1.0.9-4e6c624a3431a4fa7630e4fb77be4c83 is unusable due to missing or recursive dependencies: 
    base-4.5.1.0-81d626fb996bc7e140a3fd4481b338cd 
package haskell-lexer-1.0-8fea1c35b626a2de761522690a88c063 is unusable due to missing or recursive dependencies: 
    base-4.5.1.0-81d626fb996bc7e140a3fd4481b338cd 
package primitive-0.4.1-0007d441db5f4ce1ffd66bd3816c2d4e is unusable due to missing or recursive dependencies: 
    base-4.5.1.0-81d626fb996bc7e140a3fd4481b338cd 
package split-0.2.1.1-03ec5738edb34f2e8967d25637b9392f is unusable due to missing or recursive dependencies: 
    base-4.5.1.0-81d626fb996bc7e140a3fd4481b338cd 
package vector-0.10.0.1-3450daae3d9f2092020075d05481123c is unusable due to missing or recursive dependencies: 
    base-4.5.1.0-81d626fb996bc7e140a3fd4481b338cd primitive-0.5.0.1-15cdc8c11a54a78809b647af0c2975b3 
wired-in package ghc-prim mapped to ghc-prim-0.2.0.0-7d3c2c69a5e8257a04b2c679c40e2fa7 
wired-in package integer-gmp mapped to integer-gmp-0.4.0.0-af3a28fdc4138858e0c7c5ecc2a64f43 
wired-in package base mapped to base-4.5.1.0-47f48c3ae7f8256a66a23e9dfe22eefc 
wired-in package rts mapped to builtin_rts 
wired-in package template-haskell mapped to template-haskell-2.7.0.0-e109822dcbed82c43f9fa60194eb64b5 
wired-in package dph-seq not found. 
wired-in package dph-par not found. 
Hsc static flags: -fscc-profiling -static 
*** Chasing dependencies: 
Chasing modules from: *playGame.hs 

Grid.hs:28:8: 
    Could not find module `Data.Vector' 
    Perhaps you meant Data.Functor (from base) 
    Locations searched: 
     Data/Vector.hs 
     Data/Vector.lhs 
*** Deleting temp files: 
Deleting: 
*** Deleting temp dirs: 
Deleting: 
Drews-MacBook-Pro:Blokus-AI drewgross$ 

Это то, что оболочка использует:

Drews-MacBook-Pro:Blokus-AI drewgross$ which ghc 
/usr/bin/ghc 

я cabal install -v lens и, очевидно, была тонна продукции, но я думаю, что это соответствующая часть:

Registering lens-3.7.0.2... 
/usr/bin/ghc-pkg update - --global --user 
Updating world file... 
Drews-MacBook-Pro:Blokus-AI drewgross$ 

Который, кажется, указывает что они используют ту же версию. Я могу опубликовать больше информации об установке cabal, если это необходимо.

Edit: более GHC выход из заговорщиков установки -v

Building lens-3.7.0.2... 
Preprocessing library lens-3.7.0.2... 
Building library... 
creating dist/build 
/usr/bin/ghc --make -package-name lens-3.7.0.2 -hide-all-packages -fbuilding-cabal-package -i -idist/build -isrc -idist/build/autogen -Idist/build/autogen -Idist/build -optP-DTRUSTWORTHY=1 -optP-DDEFAULT_SIGNATURES=1 -optP-include -optPdist/build/autogen/cabal_macros.h -odir dist/build -hidir dist/build -stubdir dist/build -package-id array-0.4.0.0-0b6c5ca7e879a14d110ca4c001dd9297 -package-id base-4.5.1.0-81d626fb996bc7e140a3fd4481b338cd -package-id bytestring-0.9.2.1-0044644a71adfe5e950e6c6f6ca13065 -package-id comonad-3.0.0.2-6ef27fce8536ebdf9c364307a0915f63 -package-id comonad-transformers-3.0-a6df581636b1c9b514cfa6560f17d6a3 -package-id comonads-fd-3.0-b906ed7898871c5d2427052e2eefa62e -package-id containers-0.4.2.1-75f143aa39a3e77a1ce2300025bdd8ce -package-id filepath-1.3.0.0-f998e5510c76a98913f57b14b4f16c57 -package-id ghc-prim-0.2.0.0-7d3c2c69a5e8257a04b2c679c40e2fa7 -package-id hashable-1.1.2.5-14291f3b4e96b5599759ce7daa2bd37c -package-id mtl-2.1.2-02e701f9b1590ee88a0b5b0bd5d93a29 -package-id parallel-3.2.0.3-4cdd6067624f867b253b98d6d9fb9f52 -package-id semigroups-0.8.4.1-4d3a86b037504e6000a0354510588745 -package-id split-0.2.1.1-03ec5738edb34f2e8967d25637b9392f -package-id template-haskell-2.7.0.0-29110cc89a711d6ab3e7ee0e0a8ee949 -package-id text-0.11.2.3-473d9a1761b27c7315f2ef4569d93c3c -package-id transformers-0.3.0.0-8e66ecc7d4dae2b07b2b5406908c70e4 -package-id unordered-containers-0.2.2.1-d70d5ccb1df11dbbbaac89571b1ee46d -package-id vector-0.10.0.1-3450daae3d9f2092020075d05481123c -O -Wall -fwarn-tabs -O2 -fdicts-cheap -funbox-strict-fields -XHaskell98 Control.Lens.TH Language.Haskell.TH.Lens Control.Exception.Lens Control.Lens Control.Lens.Action Control.Lens.Classes Control.Lens.Combinators Control.Lens.Fold Control.Lens.Getter Control.Lens.Indexed Control.Lens.IndexedGetter Control.Lens.IndexedFold Control.Lens.IndexedLens Control.Lens.IndexedSetter Control.Lens.IndexedTraversal Control.Lens.Internal Control.Lens.Internal.Zipper Control.Lens.Iso Control.Lens.Loupe Control.Lens.Plated Control.Lens.Prism Control.Lens.Representable Control.Lens.Setter Control.Lens.Simple Control.Lens.Traversal Control.Lens.Tuple Control.Lens.Type Control.Lens.WithIndex Control.Lens.Wrapped Control.Lens.Zipper Control.Lens.Zoom Data.Bits.Lens Data.ByteString.Lens Data.ByteString.Strict.Lens Data.ByteString.Lazy.Lens Data.Complex.Lens Data.Data.Lens Data.Dynamic.Lens Data.HashSet.Lens Data.IntSet.Lens Data.List.Lens Data.List.Split.Lens Data.Sequence.Lens Data.Set.Lens Data.Text.Lens Data.Text.Strict.Lens Data.Text.Lazy.Lens Data.Tree.Lens Data.Typeable.Lens Data.Vector.Lens Data.Vector.Generic.Lens GHC.Generics.Lens Data.Array.Lens System.FilePath.Lens Control.Parallel.Strategies.Lens Control.Seq.Lens Control.Lens.Internal.Combinators 
[ 1 of 57] Compiling Control.Lens.Classes (src/Control/Lens/Classes.hs, dist/build/Control/Lens/Classes.o) 
[ 2 of 57] Compiling Control.Lens.Internal (src/Control/Lens/Internal.hs, dist/build/Control/Lens/Internal.o) 
[ 3 of 57] Compiling Control.Lens.Internal.Combinators (src/Control/Lens/Internal/Combinators.hs, dist/build/Control/Lens/Internal/Combinators.o) 
[ 4 of 57] Compiling Control.Lens.Indexed (src/Control/Lens/Indexed.hs, dist/build/Control/Lens/Indexed.o) 
[ 5 of 57] Compiling Control.Lens.IndexedGetter (src/Control/Lens/IndexedGetter.hs, dist/build/Control/Lens/IndexedGetter.o) 
[ 6 of 57] Compiling Control.Lens.Action (src/Control/Lens/Action.hs, dist/build/Control/Lens/Action.o) 
[ 7 of 57] Compiling Control.Lens.Setter (src/Control/Lens/Setter.hs, dist/build/Control/Lens/Setter.o) 

Edit: GHC-упак свалка

Drews-MacBook-Pro:Blokus-AI drewgross$ ghc-pkg dump | grep "id: base" 
id: base-4.5.1.0-81d626fb996bc7e140a3fd4481b338cd 
+1

Что говорит вам 'ghc-pkg list vector', и получаете ли вы более полезную информацию при компиляции' playGame' с опцией '-v'? –

+0

@ DanielFischer Я добавил вывод этих команд – Drew

ответ

2

Вы можете перечислить установленные пакеты с ghc-pkg list. Например (по-видимому, мне нужно обновить),

$ ghc-pkg list | grep vector 
    vector-0.9.1 
    vector-algorithms-0.5.4 
    vector-algorithms-0.5.4.2 
    vector-space-0.8.0 
    vector-strategies-0.3 

Вы можете отменить их с помощью ghc-pkg unregister. Ex,

$ ghc-pkg unregister vector-0.9.1 

И тогда cabal update && cabal install vector должны захватить последнюю версию от hackage.

+0

Кажется, что не сработало. Каждый шаг прошел нормально, но в конце он все равно не смог найти Data.Vector – Drew

+1

Если вы откроете GHCi и введите 'import Data.Vector', что-нибудь произойдет? – jtobin

+0

GHCi также не может найти его (добавил, что на вопрос) – Drew

6

Ваша база данных пакетов сильно сломана.В ghc -v выходные перечислены десять непригодные пакетов из-за отсутствия или рекурсивных зависимостей, среди них vector:

package vector-0.10.0.1-3450daae3d9f2092020075d05481123c is unusable due to missing or recursive dependencies: 
    base-4.5.1.0-81d626fb996bc7e140a3fd4481b338cd primitive-0.5.0.1-15cdc8c11a54a78809b647af0c2975b3 

Одна вещь все битые пакеты имеют в общем недостающее DEPENDENCY

base-4.5.1.0-81d626fb996bc7e140a3fd4481b338cd 

(?) где

wired-in package base mapped to base-4.5.1.0-47f48c3ae7f8256a66a23e9dfe22eefc 

База данных имеет другой хэш.

Я не уверен, как это произошло, насколько я знаю, невозможно переустановить base, но похоже, что у вас есть два примера ghc-7.4.2, и они наступают друг на друга ,

ghc-pkg list использует

/Library/Frameworks/GHC.framework/Versions/7.4.2-x86_64/usr/lib/ghc-7.4.2/package.conf.d 

для глобальной базы данных пакетов, в то время компиляция использует

Using binary package database: /usr/local/Cellar/ghc/7.4.2/lib/ghc-7.4.2/package.conf.d/package.cache 

Теперь, может быть, по крайней мере, один из двух является символической и они оба указывая на то же место - тогда ваш package.cache не синхронизирован - но

Glasgow Haskell Compiler, Version 7.4.2, stage 2 booted by GHC version 7.4.2 

GHC, загруженный той же версией, кажется необычным.

Можете ли вы установить, действительно ли у вас есть два ghc-7.4.2, а в командной строке используется другая, отличная от той, которую использует cabal? which ghc сообщает, какой из них использует оболочка, а cabal install -v some-package выводит командную строку cabal, включая весь путь к используемому GHC.

+0

Я добавил выход этих программ. Кажется, они используют тот же ghc. – Drew

+1

Я бы хотел увидеть командную строку компиляции. 'Ghc-pkg' из'/usr/bin' указывает, что они используют то же самое, но я бы предпочел быть уверенным. –

+0

ОК, я добавил еще кое-что из компиляции. Определенно кажется, что используется '/ usr/bin/ghc' – Drew

0

У меня возникла аналогичная проблема с другим модулем после того, как я установил платформу Haskell поверх существующей (встроенной) установки ghc [Mac OS Mavericks 10.9. +]. Я удалил предыдущую GHC с доморощенным

brew uninstall ghc 

и повторно запустил установщик Haskell Platform (.pkg на Mac). Затем я должен был

sudo ghc-pkg recache 

разрешить предупреждение из-просрочен на

ghc-pkg list 

Эта проблема решена в моем случае.

 Смежные вопросы

  • Нет связанных вопросов^_^