Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Build Python最大版本的Autofoo测试_Build_Autoconf_Automake_Gnu Toolchain_Linux Toolchain - Fatal编程技术网

Build Python最大版本的Autofoo测试

Build Python最大版本的Autofoo测试,build,autoconf,automake,gnu-toolchain,linux-toolchain,Build,Autoconf,Automake,Gnu Toolchain,Linux Toolchain,我试图让autofoo测试Python的最高版本,而不是最低版本。例如: AC_REQUIRE([AM_PATH_PYTHON([2.7])]) 。。。将测试Python>=2.7,并且可能会出现/usr/bin/python3。但是,我希望它不会返回比python2.7更大的值 有没有一种简单的方法可以做到这一点?我四处询问,到目前为止,我得到的最好的回答是:“重写宏。” 提前谢谢 AM\u PATH\u PYTHON的版本参数是可选的。如果需要python,可以这样调用它: AM_PATH

我试图让autofoo测试Python的最高版本,而不是最低版本。例如:

AC_REQUIRE([AM_PATH_PYTHON([2.7])])
。。。将测试Python>=2.7,并且可能会出现/usr/bin/python3。但是,我希望它不会返回比python2.7更大的值

有没有一种简单的方法可以做到这一点?我四处询问,到目前为止,我得到的最好的回答是:“重写宏。”


提前谢谢

AM\u PATH\u PYTHON的版本参数是可选的。如果需要python,可以这样调用它:

AM_PATH_PYTHON
AM_PATH_PYTHON(,, [:])
如果不是必需的,请这样称呼:

AM_PATH_PYTHON
AM_PATH_PYTHON(,, [:])
现在,
AM\u PATH\u PYTHON
将shell变量
$PYTHON\u VERSION
设置为
sys.VERSION[:3]
,您可以自己测试它。

1)。添加到
acinclude.m4

`# my_CHECK_MAJOR_VERSION(VARIABLE, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE])`  
`# ---------------------------------------------------------------------------`  
`# Run ACTION-IF-TRUE if the VAR has a major version >= VERSION.`  
`# Run ACTION-IF-FALSE otherwise.`  
AC_DEFUN([my_CHECK_MAJOR_VERSION],  
[AC_MSG_CHECKING([whether $1 $$1 major version == $2])  
case $$1 in  
$2*)  
  AC_MSG_RESULT([yes])  
  ifelse([$3], [$3], [:])  
  ;;  
*)  
  AC_MSG_RESULT([no])  
  ifelse([$4], , [AC_MSG_ERROR([$$1 differs from $2])], [$4])  
  ;;  
esac])  
2.)添加到
zconfigure.inz

my_CHECK_MAJOR_VERSION([PYTHON_VERSION], [2])  
3.
aclocal
automake
autoconf


就是这样。

另一种解决方案是设置默认值,只包括Python 2二进制文件。

恐怕您目前为止最好的回答可能是正确的。这不只是复制宏并将
-gt
更改为
-lt
的问题吗?对,问题是如果系统上有多个Python安装,例如2.7和3.0,我希望$Python_版本变为2.7,并让其余的变量反映二进制路径,等等,是的,我错过了这一点。即使它没有出现在
/configure--help
中,您也可以使用
/configure PYTHON=/usr/bin/python2.7
之类的东西设置
$PYTHON
。显然,允许用户设置
$PYTHON
是正确的行为,请参阅此处的错误报告:。它在当前的automake上运行良好,但将来的版本将向
/configure--help
添加帮助信息。因此,您可以根据
AM_PATH_PYTHON
的结果进行测试,如果系统版本太新,可以指示用户提供另一个
$PYTHON