Pandoc“找不到模块..."已安装的模块 [英] Pandoc 'Could not find module ...' for installed module

查看:59
本文介绍了Pandoc“找不到模块..."已安装的模块的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我目前正在尝试使用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:

  1. 该软件包已安装,并且您不在任何未安装该软件包的沙箱中.

  1. 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆