Pandoc“找不到模块..."已安装的模块 [英] Pandoc 'Could not find module ...' for installed module
问题描述
我目前正在尝试使用pandoc(作为Haskell模块,而不是程序)将MediaWiki文本转换为其他格式.
I'm currently trying to use pandoc (as a Haskell module, not as a program) to convert MediaWiki text to other formats.
让我们假设这个程序:
import Text.Pandoc.Readers.MediaWiki
main = do print "foo"
使用 runghc
运行它时,出现以下错误消息:
When using runghc
to run it, I get the following error message:
pandock.hs:1:8:
Could not find module `Text.Pandoc.Readers.MediaWiki'
Use -v to see a list of the files searched for.
我的第一个假设是未安装pandoc或未正确安装pandoc.因此,我用-force-reinstalls
My first assumption was that pandoc was either not installed or incorrectly installed. Therefore I reinstalled it with --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 的输出很长,我认为相关部分是:
The output of runghc -v pandock.hs
is quite long, I assume the relevant part is:
*** 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
安装的软件包?
However, both ~/.cabal/lib/x86_64-linux-ghc-7.6.3/pandoc-1.12.3.1/Text/Pandoc/Readers/Mediawiki/MediaWiki.hi
and ~/.cabal/bin/pandoc
exist. How can I make GHC properly recognize the cabal
-installed package?
任何帮助将不胜感激!
推荐答案
当尝试在其他计算机上重现此问题时,每5台计算机中只有2台出现此问题.在它们两个上,我都以相同的方式和顺序安装了cabal软件包.
When trying to reproduce this issue on other computers, only 2 out of 5 computers had this issue. On both of them I installed cabal packages in about the same way and order.
回想一下,我认为这个问题是由于某些破损的包装造成了严重破坏而引起的:
In retrospect I assume this issue arose because of some broken packages wreaking havoc:
$ 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
完全一样)在那里.
Note that neither pandoc
nor yaml
(I installed it after asking the question and had the exact same issues as with pandoc
) are listed there.
对于也有类似问题的用户,请确保:
For users also having a similar problem, please ensure:
-
该软件包已安装,并且您不在任何未安装该软件包的沙箱中.
The package is installed and you're not inside any sandbox where the package is not installed.
在执行测试脚本的目录中,确保没有 Text/Pandoc
文件夹(或等效文件夹,具体取决于引起问题的程序包)
In the directory where you're executing the test script, ensure that there is no Text/Pandoc
folder (or equivalent, depending on the package causing the problem
使用 runghc -v
运行测试脚本以检查其是否搜索正确的目录
Run your test script with runghc -v
to check if it searches the proper directory
ghc-pkg list
列出已安装的软件包,并且没有软件包损坏(使用 ghc-pkg check
进行检查)
ghc-pkg list
lists your package as installed, and no packages are broken (use ghc-pkg check
to check)
我通过重命名〜/.cabal
和〜/.ghc
解决了我的问题.请注意,我这样做时缺少 proper 解决方案,我认为您应该只在万不得已时才这样做.
I solved my problem by renaming ~/.cabal
and ~/.ghc
. Note that I did this lacking a proper solution, I think you should only do this as a last resort.
这篇关于Pandoc“找不到模块..."已安装的模块的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!