[Bioperl-l] Fw: broken Bio::SeqIO in bioperl on OS X (fink)

Chris Fields cjfields at illinois.edu
Fri Feb 27 14:54:59 UTC 2009


As Hilmar stated somewhere along this thread this is related to either  
a lack of Scalar::Util or a bad/incomplete Scalar::Util installation  
(maybe a pure perl only version).

> ------------- EXCEPTION -------------
> MSG: Failed to load module Bio::SeqIO::genbank. Weak references are
> not implemented in the version of perl at /sw/lib/perl5/5.8.8/Bio/
> Species.pm line 91

This can be rectified by installing/reinstalling Scalar::Util (it may  
require a force install).  See here for solutions:

http://www.perlmonks.org/?node_id=424737
http://www.perlmonks.org/?node_id=665554

As I see it there are two problems here.  The first is with fink's  
perl 5.8.8 package, which doesn't appear to have a weak-ref-enabled  
Scalar::Util in core, causing the error.  The second is with the  
Build.PL in BioPerl 1.5.2 (which doesn't list Scalar::Util as a  
required module).  The latter may have rectified the former upon  
installation if Scalar::Util wasn't present, but according to  
Module::CoreList:

perl -MModule::CoreList -e 'print Module::CoreList- 
 >first_release("Scalar::Util")."\n";'
5.007003

A full (weak-ref enabled) Scalar::Util should be present in the 5.8.8  
core set of modules.

The Scalar::Util require issue has been rectified in the BioPerl 1.6  
release, out now in CPAN, so I consider it fixed from our end.

chris

On Feb 27, 2009, at 7:59 AM, Mark A. Jensen wrote:

> Hi Koen-
> If the user can find the directory containing the file Bio/SeqIO/ 
> genbank.pm,
> he can force the script to find it. Example: if the full path of the  
> module is
>
> /sw/lib/perl5/5.8.8/site/Bio/SeqIO/genbank.pm
>
> then he should add the line
>
> use lib '/sw/lib/perl5/5.8.8/site';
>
> to the top of his script.
>
> (I don't see any ../site or ../vendor paths in the @INC. I don't  
> know about darwin,
> but frequently externally installed modules will be installed in  
> site or vendor paths
> beneath a trunk directory like ../lib/perl5/5.8.8 in other systems.)
> Mark
>
> ----- Original Message ----- From: "Koen van der Drift" <kvddrift at earthlink.net 
> >
> To: "Dave Messina" <David.Messina at sbc.su.se>
> Cc: <bioperl-l at lists.open-bio.org>
> Sent: Friday, February 27, 2009 8:37 AM
> Subject: Re: [Bioperl-l] Fw: broken Bio::SeqIO in bioperl on OS X  
> (fink)
>
>
>> Hi Dave,
>>
>> This is the output from the user:
>>
>> $ perl -e 'print (join "\n", @INC, "\n")'
>> /sw/lib/perl5/5.8.8/darwin-thread-multi-2level
>> /sw/lib/perl5/5.8.8
>> /sw/lib/perl5/darwin-thread-multi-2level
>> /sw/lib/perl5
>> /sw/lib/perl5/darwin
>> /System/Library/Perl/5.8.8/darwin-thread-multi-2level
>> /System/Library/Perl/5.8.8
>> /Library/Perl/5.8.8/darwin-thread-multi-2level
>> /Library/Perl/5.8.8
>> /Library/Perl
>> /Network/Library/Perl/5.8.8/darwin-thread-multi-2level
>> /Network/Library/Perl/5.8.8
>> /Network/Library/Perl
>> /System/Library/Perl/Extras/5.8.8/darwin-thread-multi-2level
>> /System/Library/Perl/Extras/5.8.8
>> /Library/Perl/5.8.6
>> /Library/Perl/5.8.1
>>
>>
>> Additionally, he uses an Intel-Mac, I still have an older PPC-Mac.  
>> Maybe perl is compiled differently on both systems?
>>
>> And to answer your other question, the bioperl package in fink does  
>> not do any testing, since that assumes the user to be online. If  
>> the user happens not to be online, the build will fail. So it's  
>> just a practical reason.
>>
>> cheers,
>>
>> - Koen.
>>
>>
>> -----Original Message-----
>>> From: Dave Messina <David.Messina at sbc.su.se>
>>> Sent: Feb 26, 2009 4:02 PM
>>> To: Koen van der Drift <kvddrift at earthlink.net>
>>> Cc: bioperl-l at lists.open-bio.org
>>> Subject: Re: [Bioperl-l] Fw: broken Bio::SeqIO in bioperl on OS X  
>>> (fink)
>>>
>>> Hi Koen,
>>>
>>> I'm not very experienced with fink -- does it run the test suite  
>>> as part of
>>> its install process?
>>>
>>> The error seems pretty straightforward:
>>>
>>>
>>>> >Bio::SeqIO: genbank cannot be found
>>>>
>>>
>>>
>>>> >MSG: Failed to load module Bio::SeqIO::genbank.
>>>
>>>
>>>
>>> Namely, that the module is either not present or not in perl's  
>>> list of
>>> library directories (@INC).
>>>
>>> This doesn't seem like a BioPerl error to me, but without knowing  
>>> more about
>>> fink I'm reluctant to assume it's a fink errror either.
>>>
>>> I would recommend the user first look where fink is supposed to  
>>> install the
>>> BioPerl modules and verify that the modules are there.
>>>
>>> Then I would have him type
>>>
>>> perl -e 'print (join "\n", @INC, "\n")'
>>>
>>> on the command line and verify that the directory where he found  
>>> the BioPerl
>>> modules is in that list.
>>>
>>>
>>> Dave
>>
>>
>>
>> _______________________________________________
>> Bioperl-l mailing list
>> Bioperl-l at lists.open-bio.org
>> http://lists.open-bio.org/mailman/listinfo/bioperl-l
>>
>
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/bioperl-l




More information about the Bioperl-l mailing list