2013-08-22 39 views
4

我運行Debian擠壓和perl v5.10.1,我有兩種版本的Python安裝:如何指定Perl的Inline :: Python模塊正在使用的Python版本?

$ pyversions -i 
python2.5 python2.6 

Python::Inline使用的python2.5 obvoiusly:

$ perl 
use Inline::Python; 
Inline::Python::py_eval('import sys'); 
Inline::Python::py_eval('print sys.version'); 

2.5.5 (r255:77872, Nov 28 2010, 17:10:16) 
[GCC 4.4.5] 

我需要python2.6的運行我python代碼。我怎麼能做到這一點?

+0

哇。 Perl中的Python。從「有超過一種方式去做」到「只有一種方式來形成它」...令人興奮的。 –

回答

5

在模塊安裝過程中,您可以鏈接到所需的版本。見Makefile.PL

#============================================================================ 
# What python are we going to try? 
#============================================================================ 
my @pythons; 
my $sep = $^O eq 'MSWin32' ? ";" : ":"; 
for $p (split /$sep/, $ENV{PATH}) { 
    $p =~ s/^~/$ENV{HOME}/; 
    $p .= "/python"; 
    push @pythons, { path => $p } if -f $p && -x $p; 
} 

# Keep them in PATH order. 
#@pythons = sort { $a->{path} cmp $b->{path} } @pythons; 

my $num = 1; 
print "Found these python executables on your PATH:\n"; 
print $num++ . ". " . $_->{path} . "\n" for @pythons; 

my $sel = prompt("Use which?", '1'); 
$sel = $pythons[$sel-1] if $sel =~ /^\d+$/; 
$sel = { path => $sel } unless ref $sel eq 'HASH'; 

print "Using $sel->{path}\n"; 
+0

謝謝!我擔心這將是編譯時的選擇...... – johannesch

相關問題