如何指定Perl的Inline::Python模块正在使用的Python版本?

How can I specify the version of Python that Perl#39;s Inline::Python module is using?(如何指定Perl的Inline::Python模块正在使用的Python版本?)
本文介绍了如何指定Perl的Inline::Python模块正在使用的Python版本?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我运行的是Debian Squeeze和Perl v5.10.1,并且安装了两个版本的Python:

$ pyversions -i
python2.5 python2.6

Python::Inline明显使用python2.5:

$ 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代码。我如何才能做到这一点?

推荐答案

您可以在安装模块期间链接到所需版本。请参见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:
";
print $num++ . ". " . $_->{path} . "
" 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}
";

这篇关于如何指定Perl的Inline::Python模块正在使用的Python版本?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Leetcode 234: Palindrome LinkedList(Leetcode 234:回文链接列表)
How do I read an Excel file directly from Dropbox#39;s API using pandas.read_excel()?(如何使用PANDAS.READ_EXCEL()直接从Dropbox的API读取Excel文件?)
subprocess.Popen tries to write to nonexistent pipe(子进程。打开尝试写入不存在的管道)
I want to realize Popen-code from Windows to Linux:(我想实现从Windows到Linux的POpen-code:)
Reading stdout from a subprocess in real time(实时读取子进程中的标准输出)
How to call type safely on a random file in Python?(如何在Python中安全地调用随机文件上的类型?)