3

我试图让 autofoo 测试 Python 的最大版本而不是最低版本。例子:

AC_REQUIRE([AM_PATH_PYTHON([2.7])])

... 将测试 Python >= 2.7,并且可能会出现 /usr/bin/python3。但是,我希望它返回的值不超过 python2.7。

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

提前致谢!

4

3 回答 3

2

的版本参数AM_PATH_PYTHON是可选的。如果需要 python,请像这样调用它:

AM_PATH_PYTHON

如果不需要,请像这样调用它:

AM_PATH_PYTHON(,, [:])

现在,AM_PATH_PYTHON将 shell 变量设置$PYTHON_VERSION为 的值sys.version[:3],您可以自行测试。

于 2011-01-28T02:05:38.203 回答
2

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

就是这样。

于 2012-09-20T08:13:34.370 回答
0

另一种解决方案可以为_AM_PYTHON_INTERPRETER_LIST设置默认值,以仅包含 Python 2 二进制文件。

于 2013-10-04T04:11:43.280 回答