安装XML :: DOM :: XPath时出错

时间:2017-12-25 07:14:29

标签: xml linux xpath bioperl activestate

我编写了一个使用Bio :: Seq和Bio :: SeqIO软件包的小型Perl脚本。当我尝试在基于Linux的服务器上运行脚本时。我收到了很多错误,基本上告诉我BioPerl还没有安装。

我在本地安装了ActiveState Perl 5.26并且已经处理了大部分先决条件以便安装Bio :: Perl。只有XML :: DOM :: XPath仍然是个问题。尝试安装包后,我收到以下错误:

Test Summary Report
-------------------
t/test_non_ascii.t                  (Wstat: 512 Tests: 0 Failed: 0)
  Non-zero exit status: 2
  Parse errors: Bad plan.  You planned 10 tests but ran 0.
Files=35, Tests=183,  4 wallclock secs ( 0.12 usr  0.04 sys +  3.46 cusr  0.52 csys =  4.14 CPU)
Result: FAIL
Failed 1/35 test programs. 0/183 subtests failed.
make: *** [test_dynamic] Error 255
  MIROD/XML-DOM-XPath-0.14.tar.gz
  /usr/bin/make test -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:
  reports MIROD/XML-DOM-XPath-0.14.tar.gz
Failed during this command:
 MIROD/XML-DOM-XPath-0.14.tar.gz              : make_test NO


nolock_cpan> reports MIROD/XML-DOM-XPath-0.14.tar.gz
Distribution: M/MI/MIROD/XML-DOM-XPath-0.14.tar.gz
Fetching 'http://www.cpantesters.org/show/XML-DOM-XPath.yaml'...DONE

Catching error: "CPAN::Exception::yaml_process_error=HASH(0x4ca5c28)" at /data/calvin/ActivePerl-5.26/lib/CPAN.pm line 392.
        CPAN::shell() called at -e line 1

此错误似乎与t / test_non_ascii.t相关联,作为尝试运行命令install" XML :: DOM :: XPath"的早期输出。发出以下错误:

t/test_non_ascii.t .................... The encoding pragma is no longer supported. Check cperl at t/test_non_ascii.t line 10.
BEGIN failed--compilation aborted at t/test_non_ascii.t line 10.
  Looks like your test exited with 2 before it could output anything.
t/test_non_ascii.t .................... Dubious, test returned 2 (wstat 512, 0x200)
Failed 10/10 subtests

有人知道错误的确切原因是什么以及我如何解决它?

5 个答案:

答案 0 :(得分:1)

不确定是否最终解决了这个问题,但是问题出在t/test_non_ascii.t第10行的编码上,该编码使用的encoding.pm在Perl 5.25.3之后不再受支持:

use encoding 'utf8';

The solution as can be found in the bug reports on CPAN是将行更改为

use utf8;

git diff t/test_nonascii.t t/test_non_ascii.t.new的结果:

--- t/test_non_ascii.t
+++ t/test_non_ascii.t.new
@@ -7,7 +7,7 @@ use strict;
 use Test::More tests => 10;
 use XML::DOM::XPath;

-use encoding 'utf8';
+use utf8;

 my $display_warning=0;

答案 1 :(得分:1)

尽管以上大多数答案是正确的,但它们不能正确解决问题。

假设您在Linux系统中,则需要转到已压缩的源文件。您通常可以在/home/username/.cpan/sources/authors/id/M/MI/MIROD/XML-DOM-XPath-0.14.tar.gz上找到它。 您必须解压缩文件

tar -xvzf XML-DOM-XPath-0.14.tar.gz
nano XML-DOM-XPath-0.14/t/test_non_ascii.t

use encoding 'utf8';替换为{ use utf8;

使用Ctrl+X + S + Enter

保存文件

现在您必须使用

再次压缩文件
tar -czvf XML-DOM-XPath-0.14.tar.gz XML-DOM-XPath-0.14/

按以下方式检索md5sha256sum

sha256sum XML-DOM-XPath-0.14.tar.gz
md5sum XML-DOM-XPath-0.14.tar.gz

通过在json文件中搜索文件名CHECKSUMS来替换XML-DOM-XPath-0.14.tar.gz文件中的那些校验和

现在可以正常运行安装了,应该可以了!

不客气

答案 2 :(得分:1)

安德烈西托的解释对我有用。再次执行以下步骤,但是使用CPAN :: Checksums。

  1. cd .cpan / sources / authors / id / M / MI / MIROD
  2. tar zxvf XML-DOM-XPath-0.14.tar.gz
  3. 编辑并保存XML-DOM-XPath-0.14 / t / test_non_ascii.t
  4. tar zcvf XML-DOM-XPath-0.14.tar.gz XML-DOM-XPath-0.14
  5. perl-我们使用CPAN :: Checksums qw(updatedir); printf“%s \ n”,Updatedir(“。”)'
  6. cpan cpan XML :: DOM :: XPath

答案 3 :(得分:0)

已经有一段时间了,但这是我用过的台词:

sudo cpanm Bio::Perl
sudo apt install clustalw
sudo cpanm Bio::Tools::Run::Alignment::Clustalw

我不确定它是如何工作的,让我知道您的想法。

答案 4 :(得分:0)

我正在使用cpanm安装XML :: DOM :: XPath并遇到相同的错误。

要解决此问题,您应该修改“ test_non_ascii.t”文件(例如,我的路径是“ /Users/USER_NAME/.cpanm/work/1565320320.17142/XML-DOM-XPath-0.14/t”)-将use encoding 'utf8';更改为use utf8;,然后使用此修改后的文件安装模块(请参见下面的命令)。效果很好。

cpanm /Users/USER_NAME/.cpanm/work/1565320320.17142/XML-DOM-XPath-0.14