繁体   English   中英

如何从 anaconda 修复 Perl 而不安装 bioperl? `拯救 BioPerl-1.007002 的安装。`

[英]How to fix Perl from anaconda not installing bioperl? `Bailing out the installation for BioPerl-1.007002.`

我正在使用 conda 安装几个软件包。 我已经在 conda 下安装了 Perl 并且是在这台机器上工作的那个(运行 Ubuntu 18.04)。 现在我正在尝试使用需要 bioperl 的脚本。

我尝试更新 conda,通过 conda 安装 bioperl 并通过 cpanm 安装 bioperl,如下所示。

我查了一下,目前使用的 Perl 是 anaconda 之一。 perl 脚本中的 shebang 是#!/home/evo-slave/anaconda_ete/bin/perl -w

这是运行脚本时的初始错误

    Can't locate Bio/SeqIO.pm in @INC (you may need to install the 
    Bio::SeqIO module) (@INC contains: /home/evo- 
    slave/anaconda_ete/lib/site_perl/5.26.2/x86_64-linux-thread-multi 
    /home/evo-slave/anaconda_ete/lib/site_perl/5.26.2 /home/evo- 
    slave/anaconda_ete/lib/5.26.2/x86_64-linux-thread-multi /home/evo- 
    slave/anaconda_ete/lib/5.26.2 .) at ./cortador.pl line 9.
    BEGIN failed--compilation aborted at ./cortador.pl line 9.

我不知道这是否是 anaconda perl 或在脚本执行期间没有调用/安装 bioperl 的问题,也许脚本中的这一行应该指示其他内容

    use File::Basename;
    use Bio::SeqIO;
    use Bio::Seq;
    use Bio::DB::SeqFeature::Store;
    use Bio::SeqFeatureI;

当我尝试安装

    cpanm Bio::Perl

我收到了这个错误

    --> Working on Bio::Perl
    Fetching http://www.cpan.org/authors/id/C/CJ/CJFIELDS/BioPerl- 
    1.007002.tar.gz ... OK
    Configuring BioPerl-1.007002 ... OK
    ==> Found dependencies: IO::String, Data::Stag, Test::Most
    --> Working on IO::String
    Fetching http://www.cpan.org/authors/id/G/GA/GAAS/IO-String-

    1.08.tar.gz ... OK
    Configuring IO-String-1.08 ... OK
    Building and testing IO-String-1.08 ... OK
    Successfully installed IO-String-1.08
    --> Working on Data::Stag
    Fetching http://www.cpan.org/authors/id/C/CM/CMUNGALL/Data-Stag- 
    0.14.tar.gz ... OK
    Configuring Data-Stag-0.14 ... OK
    ==> Found dependencies: IO::String
    ! Installing the dependencies failed: Module 'IO::String' is not 
    installed
    ! Bailing out the installation for Data-Stag-0.14.
    --> Working on Test::Most
    Fetching http://www.cpan.org/authors/id/O/OV/OVID/Test-Most- 
    0.35.tar.gz ... OK
    Configuring Test-Most-0.35 ... OK
    ==> Found dependencies: Test::Warn, Test::Deep, Test::Differences, 
    Test::Exception, Exception::Class
    --> Working on Test::Warn
    Fetching http://www.cpan.org/authors/id/B/BI/BIGJ/Test-Warn- 
    0.36.tar.gz ... OK
    Configuring Test-Warn-0.36 ... OK
    ==> Found dependencies: Sub::Uplevel
    --> Working on Sub::Uplevel
    Fetching http://www.cpan.org/authors/id/D/DA/DAGOLDEN/Sub-Uplevel- 
    0.2800.tar.gz ... OK
    Configuring Sub-Uplevel-0.2800 ... OK
    Building and testing Sub-Uplevel-0.2800 ... OK
    Successfully installed Sub-Uplevel-0.2800
    ! Installing the dependencies failed: Module 'Sub::Uplevel' is not 
    installed
    ! Bailing out the installation for Test-Warn-0.36.
    --> Working on Test::Deep
    Fetching http://www.cpan.org/authors/id/R/RJ/RJBS/Test-Deep- 
    1.128.tar.gz ... OK
    Configuring Test-Deep-1.128 ... OK
    Building and testing Test-Deep-1.128 ... OK
    Successfully installed Test-Deep-1.128
    --> Working on Test::Differences
    Fetching http://www.cpan.org/authors/id/D/DC/DCANTRELL/Test- 
    Differences-0.67.tar.gz ... OK
    Configuring Test-Differences-0.67 ... OK
    ==> Found dependencies: Capture::Tiny, Text::Diff
    --> Working on Capture::Tiny
    Fetching http://www.cpan.org/authors/id/D/DA/DAGOLDEN/Capture- 
    Tiny-0.48.tar.gz ... OK
    Configuring Capture-Tiny-0.48 ... OK
    Building and testing Capture-Tiny-0.48 ... OK
    Successfully installed Capture-Tiny-0.48
    --> Working on Text::Diff
    Fetching http://www.cpan.org/authors/id/N/NE/NEILB/Text-Diff- 
    1.45.tar.gz ... OK
    Configuring Text-Diff-1.45 ... OK
    ==> Found dependencies: Algorithm::Diff
    --> Working on Algorithm::Diff
    Fetching http://www.cpan.org/authors/id/T/TY/TYEMQ/Algorithm-Diff- 
    1.1903.tar.gz ... OK
    Configuring Algorithm-Diff-1.1903 ... OK
    Building and testing Algorithm-Diff-1.1903 ... OK
    Successfully installed Algorithm-Diff-1.1903
    ! Installing the dependencies failed: Module 'Algorithm::Diff' is 
     not installed
    ! Bailing out the installation for Text-Diff-1.45.
    ! Installing the dependencies failed: Module 'Text::Diff' is not 
    installed, Module 'Capture::Tiny' is not installed
    ! Bailing out the installation for Test-Differences-0.67.
    --> Working on Test::Exception
    Fetching http://www.cpan.org/authors/id/E/EX/EXODIST/Test- 
    Exception-0.43.tar.gz ... OK
    Configuring Test-Exception-0.43 ... OK
    ==> Found dependencies: Sub::Uplevel
    ! Installing the dependencies failed: Module 'Sub::Uplevel' is not 
    installed
    ! Bailing out the installation for Test-Exception-0.43.
    --> Working on Exception::Class
    Fetching http://www.cpan.org/authors/id/D/DR/DROLSKY/Exception- 
    Class-1.44.tar.gz ... OK
    Configuring Exception-Class-1.44 ... OK
    ==> Found dependencies: Class::Data::Inheritable
    --> Working on Class::Data::Inheritable
    Fetching http://www.cpan.org/authors/id/T/TM/TMTM/Class-Data- 
    Inheritable-0.08.tar.gz ... OK
    Configuring Class-Data-Inheritable-0.08 ... OK
    Building and testing Class-Data-Inheritable-0.08 ... OK
    Successfully installed Class-Data-Inheritable-0.08
    ! Installing the dependencies failed: Module 
    'Class::Data::Inheritable' is not installed
    ! Bailing out the installation for Exception-Class-1.44.
    ! Installing the dependencies failed: Module 'Test::Exception' is 
    not installed, Module 'Test::Differences' is not installed, Module 
    'Exception::Class' is not installed, Module 'Test::Warn' is not 
    installed, Module 'Test::Deep' is not installed
    ! Bailing out the installation for Test-Most-0.35.
    ! Installing the dependencies failed: Module 'Test::Most' is not 
    installed, Module 'IO::String' is not installed, Module 
    'Data::Stag' 
    is not installed
    ! Bailing out the installation for BioPerl-1.007002.
    6 distributions installed

ETA :似乎出了点问题,并且在简单的 cpanm 期间未安装所需模块的依赖项 尝试安装所需所有内容的一轮示例


    cpanm Sub::Uplevel

    --> Working on Sub::Uplevel
    Fetching http://www.cpan.org/authors/id/D/DA/DAGOLDEN/Sub-Uplevel-0.2800.tar.gz ... OK
    Configuring Sub-Uplevel-0.2800 ... OK
    Building and testing Sub-Uplevel-0.2800 ... OK
    Successfully installed Sub-Uplevel-0.2800
    1 distribution installed

然后

    cpanm Test::Warn

    --> Working on Test::Warn
    Fetching http://www.cpan.org/authors/id/B/BI/BIGJ/Test-Warn-0.36.tar.gz ... OK
    Configuring Test-Warn-0.36 ... OK
    ==> Found dependencies: Sub::Uplevel
    --> Working on Sub::Uplevel
    Fetching http://www.cpan.org/authors/id/D/DA/DAGOLDEN/Sub-Uplevel-0.2800.tar.gz ... OK
    Configuring Sub-Uplevel-0.2800 ... OK
    Building and testing Sub-Uplevel-0.2800 ... OK
    Successfully installed Sub-Uplevel-0.2800
    ! Installing the dependencies failed: Module 'Sub::Uplevel' is not installed
    ! Bailing out the installation for Test-Warn-0.36.
    1 distribution installed

一些有助于调试的信息:

$ set | grep ^PERL
PERL5LIB=:/media/evo-slave/Disco2/ANDRES/DOWNLOADS/GENOME/CAV-POC/GAAS/annotation
PERL_MB_OPT='--install_base "/home/evo-slave/perl5"'
PERL_MM_OPT=INSTALL_BASE=/home/evo-slave/perl5

$ which cpanm
/home/evo-slave/anaconda_ete/bin/cpanm

$ head -n 1 "$( which cpanm )"
#!/home/evo-slave/anaconda_ete/bin/perl

我将其发布为答案不是因为它是一个好主意,而是因为它提供了更多信息。 我正在研究 Amazon Linux,所以它略有不同,但也遇到了通过 conda 安装的 bioperl 依赖项的问题。 就我而言,我正在尝试运行VirSorter ,它提到了这个问题并提出了一个对我不起作用的解决方案,但建议确认您的PERL5LIB设置正确。

我观察到我的 perl 是 5.26.2:

$ perl --version

This is perl 5, version 26, subversion 2 (v5.26.2) built for x86_64-linux-thread-multi

但是 conda 出于某种晦涩的原因安装了我的 perl 依赖项 5.22.0: /home/ec2-user/anaconda3/envs/virsorter/lib/perl5/site_perl/5.22.0/

$ ls /home/ec2-user/anaconda3/envs/virsorter/lib/perl5/site_perl/5.22.0/
Algorithm  Bio  Capture  Class  Data  Devel  Exception  IO  Sub  Test  Text  URI  URI.pm  x86_64-linux-thread-multi

我发现通过简单地将PERL5LIB设置为 conda 下的 5.22.0 库,我可以让 VirSorter 运行,显然是成功的:

OLD_PER5LIB=$PERL5LIB
export PERL5LIB=/home/ec2-user/anaconda3/envs/virsorter/lib/perl5/site_perl/5.22.0/
# run virsorter
# no errors!

我相信这会给 perl 人带来一堆危险信号,而且我敢肯定,如果它真的有效的话,它会非常脆弱。 也许问题是为什么 conda 将 perl 模块安装为错误的 perl 版本?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM