我在 haskell 文件中有以下导入。我正在使用 cabal。
import Network.Wai (Application, Response, rawPathInfo, responseFile, responseLBS, requestBody)
但是当我尝试构建文件时遇到此错误:
Error: Ambiguous module name ‘Network.Wai’:
it was found in multiple packages: wai-3.2.2.1 wai-3.2.2.1
请注意,多个包完全相同。像 -XPackageImports 这样的东西在这里不起作用,因为由于某种原因同一个包被安装了两次。
我打开
/Users/<user>/.cabal/store/ghc-8.6.5/package.db
,果然,有两个版本相同但哈希值不同的“w”(wai)包。我删除了一个,这并没有解决它。
在我的例子中,Data.IP 不明确,它显示了 2 个相同版本的 iproute。
我在https://cabal.readthedocs.io/en/3.4/nix-local-build.html中读到,您可以安全地删除存储文件夹。所以我运行了以下命令。
rm -rf ~/.cabal/store
cabal build
然后我的问题就消失了。这可能对其他遇到此问题的人有用。