我目前正在尝试使用 pandoc(作为 Haskell 模块,而不是作为程序)将 MediaWiki 文本转换为其他格式。
让我们假设这个程序:
import Text.Pandoc.Readers.MediaWiki
main = do print "foo"
使用
runghc
时运行它,我收到以下错误消息:pandock.hs:1:8:
Could not find module `Text.Pandoc.Readers.MediaWiki'
Use -v to see a list of the files searched for.
我的第一个假设是 pandoc 要么没有安装,要么安装不正确。因此我用
--force-reinstalls
重新安装了它。$ cabal install pandoc --reinstall
[...]
In order, the following will be installed:
pandoc-1.12.3.1 (reinstall) changes: old-time-1.1.0.1 added
[...]
[32 of 55] Compiling Text.Pandoc.Readers.MediaWiki ( src/Text/Pandoc/Readers/MediaWiki.hs, dist/build/Text/Pandoc/Readers/MediaWiki.o )
[...]
Installing library in
/home/uli/.cabal/lib/x86_64-linux-ghc-7.6.3/pandoc-1.12.3.1
Installing executable(s) in /home/uli/.cabal/bin
Registering pandoc-1.12.3.1...
Installed pandoc-1.12.3.1
runghc -v pandock.hs
的输出很长,我认为相关部分是:*** Chasing dependencies:
Chasing modules from: *pandock.hs
pandock.hs:1:8:
Could not find module `Text.Pandoc.Readers.MediaWiki'
Locations searched:
Text/Pandoc/Readers/MediaWiki.hs
Text/Pandoc/Readers/MediaWiki.lhs
Failed, modules loaded: none.
然而,
~/.cabal/lib/x86_64-linux-ghc-7.6.3/pandoc-1.12.3.1/Text/Pandoc/Readers/Mediawiki/MediaWiki.hi
和 ~/.cabal/bin/pandoc
存在。如何让 GHC 正确识别 cabal
- 安装包?任何帮助将不胜感激!
最佳答案
尝试在其他计算机上重现此问题时,5 台计算机中只有 2 台出现此问题。在他们两个上,我以大致相同的方式和顺序安装了 cabal 包。
回想起来,我认为这个问题的出现是因为一些损坏的包造成了严重破坏:
$ ghc-pkg check
There are problems in package feed-0.3.9.2:
dependency "xml-1.3.13-dd52b1688e97a3c6cd0aa48dba7b153e" doesn't exist
There are problems in package hxt-9.3.1.3:
dependency "network-2.4.2.2-ea77cdf1bc747bc58308fdeb52745c4d" doesn't exist
There are problems in package hspec-1.8.1.1:
dependency "QuickCheck-2.6-409fcc32c191cd6e04afdebb15869820" doesn't exist
There are problems in package quickcheck-io-0.1.0:
dependency "QuickCheck-2.6-409fcc32c191cd6e04afdebb15869820" doesn't exist
There are problems in package regex-compat-0.95.1:
dependency "regex-base-0.93.2-2023953b859e6f91efe89733d2ef5421" doesn't exist
There are problems in package regex-posix-0.95.2:
dependency "regex-base-0.93.2-2023953b859e6f91efe89733d2ef5421" doesn't exist
There are problems in package hxt-9.3.1.2:
dependency "network-2.4.2.2-ea77cdf1bc747bc58308fdeb52745c4d" doesn't exist
The following packages are broken, either because they have a problem
listed above, or because they depend on a broken package.
feed-0.3.9.2
hxt-9.3.1.3
hspec-1.8.1.1
quickcheck-io-0.1.0
regex-compat-0.95.1
regex-posix-0.95.2
hxt-9.3.1.2
MissingH-1.2.0.2
yesod-test-1.2.1
请注意,
pandoc
也不是 yaml
(我在提出问题后安装了它,并且遇到了与 pandoc
完全相同的问题)列在那里。对于也有类似问题的用户,请确保:
Text/Pandoc
文件夹(或等效文件夹,取决于导致问题的软件包 runghc -v
运行您的测试脚本检查它是否搜索正确的目录ghc-pkg list
列出已安装的软件包,并且没有损坏的软件包(使用 ghc-pkg check
来检查)我通过重命名
~/.cabal
解决了我的问题和 ~/.ghc
.请注意,我这样做缺乏适当的解决方案,我认为你应该只作为最后的手段。
关于haskell - 已安装模块的 Pandoc 'Could not find module ...',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21273070/