Cabal 安装的模块不会导入
Cabal-installed Modules won't import
这里有几件事让我感到困惑,所以我会尽可能清楚地解释每一件事。
我一直在尝试使用 cabal 为 haskell 安装 diagrams
包。 I've seen it suggested 使用沙箱安装包,我就是这么做的。我不清楚什么是沙箱 - 我知道我可以用 cabal sandbox init
初始化一个沙箱并用 cabal install
在其中安装包,但我不知道如何使用这些包安装完成后。
然后我尝试使用 ghc 编译测试脚本,结果出现以下错误:
diagramstutorial.lhs:3:10:
Could not find module 'Diagrams.Prelude'
Use -v to see a list of the files searched for.
脚本应该加载的另一个模块出现类似错误。这些模块肯定都包含在 diagrams 包中,cabal 似乎很高兴该包安装正确。我希望有一些简单的东西我只是不明白,但我不知道它是什么。
I typed ghc --make diagramstutorial.lhs
to compile it
这将使 GHC 使用常规用户包数据库(即,不是沙盒数据库)。请改用 cabal exec -- ghc --make diagramstutorial.lhs
,以便 GHC 在您的沙箱上下文中运行。
您还可以通过 cabal repl
在沙箱中使用 GHCi。当然,if/when 你开始准备一个 cabal 包,如果你在它的目录中,所有 cabal 命令(cabal build
等)都会使用沙箱。
Something that's not clear to me is exactly what a sandbox is
一组包含目录本地随附数据库的软件包。在 cabal.sandbox.config
配置文件之外还有一个隐藏目录 .cabal-sandbox
,其中 diagrams
和您安装的其他软件包位于其中。
找到沙箱目录,然后找到 packages.conf.d
文件。
例如,/home/user/.cabal-sandbox/x86_64-linux-ghc-7.8.4-packages.conf.d
使用 package-db
标志重新运行 GHC 命令:
ghci -package-db /home/user/.cabal-sandbox/x86_64-linux-ghc-7.8.4-packages.conf.d --make diagramstutorial.lhs
现在一切正常
这里有几件事让我感到困惑,所以我会尽可能清楚地解释每一件事。
我一直在尝试使用 cabal 为 haskell 安装 diagrams
包。 I've seen it suggested 使用沙箱安装包,我就是这么做的。我不清楚什么是沙箱 - 我知道我可以用 cabal sandbox init
初始化一个沙箱并用 cabal install
在其中安装包,但我不知道如何使用这些包安装完成后。
然后我尝试使用 ghc 编译测试脚本,结果出现以下错误:
diagramstutorial.lhs:3:10:
Could not find module 'Diagrams.Prelude'
Use -v to see a list of the files searched for.
脚本应该加载的另一个模块出现类似错误。这些模块肯定都包含在 diagrams 包中,cabal 似乎很高兴该包安装正确。我希望有一些简单的东西我只是不明白,但我不知道它是什么。
I typed
ghc --make diagramstutorial.lhs
to compile it
这将使 GHC 使用常规用户包数据库(即,不是沙盒数据库)。请改用 cabal exec -- ghc --make diagramstutorial.lhs
,以便 GHC 在您的沙箱上下文中运行。
您还可以通过 cabal repl
在沙箱中使用 GHCi。当然,if/when 你开始准备一个 cabal 包,如果你在它的目录中,所有 cabal 命令(cabal build
等)都会使用沙箱。
Something that's not clear to me is exactly what a sandbox is
一组包含目录本地随附数据库的软件包。在 cabal.sandbox.config
配置文件之外还有一个隐藏目录 .cabal-sandbox
,其中 diagrams
和您安装的其他软件包位于其中。
找到沙箱目录,然后找到
packages.conf.d
文件。 例如,/home/user/.cabal-sandbox/x86_64-linux-ghc-7.8.4-packages.conf.d
使用
package-db
标志重新运行 GHC 命令:ghci -package-db /home/user/.cabal-sandbox/x86_64-linux-ghc-7.8.4-packages.conf.d --make diagramstutorial.lhs
现在一切正常