Чтобы напечатать довольно вертикальное дерево, я искал в Google и нашел пакет pretty-tree .
Я хочу импортировать этот пакет, но проблема в следующем:
Кажется, что Stackage LTS не включает этот пакет.
Поэтому, когда я добавляю pretty-tree
к package.yaml
и stack build
, он подсказывает, что
In the dependencies for quick-sort-0.1.0.0:
pretty-tree needed, but the stack configuration has no specified version (latest matching version is 0.1.0.0)
needed since quick-sort is a build target.
Some different approaches to resolving this:
* Recommended action: try adding the following to your extra-deps in E:\work-category-theory\quick-sort\stack.yaml:
- pretty-tree-0.1.0.0@sha256:49b0e17008f9d30328db2bcc2958f3a7b78d154d2335c2dbaa2073e237b524ae,668
я добавляю эта редакция stack.yaml
:
extra-deps:
- pretty-tree-0.1.0.0@sha256:49b0e17008f9d30328db2bcc2958f3a7b78d154d2335c2dbaa2073e237b524ae,668
Эта проблема решена, и я могу ее успешно выполнить.
Вопрос:
Что такое pretty-tree-0.1.0.0@sha256:49b0e17008f9d30328db2bcc2958f3a7b78d154d2335c2dbaa2073e237b524ae, 688
, откуда это?
В документе стека сказано, что
extra-deps
В этом поле можно указать дополнительные зависимости от вершина того, что определено в вашем снимке (указан в поле разрешения, упомянутом выше). Эти зависимости могут исходить либо от локального пути к файлу, либо от местоположения пакета Pantry.
Для случая локального пути к файлу применяются те же правила относительного пути, которые применяются к пакетам.
Расположение пакетов кладовой позволяет Вы должны включить зависимости из трех различных типов источников:
Hackage
Архивы (архивные или ZIP-файлы, локальные или по HTTP (S))
Git или Mercurial репозитории
Но я не знаю, что такое кладовая ...
Есть еще один способ решить эту проблему. То есть
- Загрузите файл pretty-tree-0.1.0.0.tar.gz из https://hackage.haskell.org/package/pretty-tree
- и распакуйте его в папку моего проекта.
- Добавить
pretty-tree-0.1.0.0
к stack.yaml
packages:
- .
- pretty-tree-0.1.0.0
Этот метод также может решить проблему, но мой вопрос:
Могу ли я добавить эту ссылку https://hackage.haskell.org/package/pretty-tree-0.1.0.0/pretty-tree-0.1.0.0.tar.gz
к stack.yaml
напрямую? Например:
extra-deps:
- url: https://hackage.haskell.org/package/pretty-tree-0.1.0.0/pretty-tree-0.1.0.0.tar.gz
Я пробую, стек подсказывает ошибку:
E:\work-category-theory\quick-sort>stack build
Stack has not been tested with GHC versions above 8.6, and using 8.8.3, this may fail
Stack has not been tested with Cabal versions above 2.4, but version 3.0.1.0 was found, this may fail
boxes > using precompiled package
contravariant > using precompiled package
distributive > using precompiled package
th-abstraction > using precompiled package
transformers-compat > using precompiled package
unordered-containers> using precompiled package
pretty-tree > configure
pretty-tree > Configuring pretty-tree-0.1.0.0...
pretty-tree > build
pretty-tree > Preprocessing library for pretty-tree-0.1.0.0..
pretty-tree > Building library for pretty-tree-0.1.0.0..
pretty-tree > [1 of 1] Compiling Data.Tree.Pretty
pretty-tree > copy/register
pretty-tree > Installing library in C:\sr\snapshots\34184208\lib\x86_64-windows-ghc-8.8.3\pretty-tree-0.1.0.0-KT
aQApPwVahHd2AQwQQQSA
pretty-tree > Registering library for pretty-tree-0.1.0.0..
Received ExitFailure 1 when running
Raw command: "C:\\Users\\Chansey\\AppData\\Local\\Programs\\stack\\x86_64-windows\\ghc-8.8.3\\bin\\ghc-pkg.exe" --user -
-no-user-package-db --package-db "C:\\sr\\snapshots\\34184208\\pkgdb" describe --simple-output distributive --expand-pkg
root
Standard error:
ghc-pkg.exe: C:\sr\snapshots\34184208\pkgdb\th-abstraction-0.3.2.0-D5zRQZUNFcq6kU1WHIrSvs.conf: getModificationTime:Crea
teFile "\\\\?\\C:\\sr\\snapshots\\34184208\\pkgdb\\th-abstraction-0.3.2.0-D5zRQZUNFcq6kU1WHIrSvs.conf": does not exist (
The system cannot find the file specified.)
Progress 7/15
Извините, так как я не очень знаком с экосистемой Haskell Этот вопрос может быть глупым.
Спасибо.
Отредактировано:
Я обнаружил, что если я сначала использую
extra-deps:
- pretty-tree-0.1.0.0@sha256:49b0e17008f9d30328db2bcc2958f3a7b78d154d2335c2dbaa2073e237b524ae,668
, а затем откат на
extra-deps:
- url: https://hackage.haskell.org/package/pretty-tree-0.1.0.0/pretty-tree-0.1.0.0.tar.gz
Ошибка исчезла, но я не знаю почему ...