【问题标题】:AM_PATH_PYTHON for python2 and python3用于 python2 和 python3 的 AM_PATH_PYTHON
【发布时间】:2013-07-09 06:14:15
【问题描述】:

我正在使用 automake 的宏 AM_PATH_PYTHON 来查找 pythondir 变量。

到目前为止,我一直在不带参数地调用它,在 Ubuntu 上默认为 python 2.7。现在我也想为python3.x(特别是3.3)构建它。

有没有一种方法可以让我调用AM_PATH_PYTHON([3]) 来获取python3.3,使用AC_SUBST 将所有生成的变量存储在python3 特定变量中,然后调用AM_PATH_PYTHON([2]) 以获得python2

我正在这样做

AM_PATH_PYTHON([3])
AC_SUBST(PYTHON3,$PYTHON)
AC_SUBST(HAVE_PYTHON3,$HAVE_PYTHON)
AC_SUBST(PYTHON3_VERSION,$PYTHON_VERSION)
AC_SUBST(PYTHON3_PREFIX,$PYTHON_PREFIX)
AC_SUBST(PYTHON3_EXEC_PREFIX,$PYTHON_EXEC_PREFIX)
AC_SUBST(PYTHON3_PLATFORM,$PYTHON_PLATFORM)
AC_SUBST(python3dir,$pythondir)
AC_SUBST(pkgpython3dir,$pkgpythondir)
AC_SUBST(py3execdir,$pyexecdir)
AC_SUBST(pkgpy3execdir,$pkgpyexecdir)

unset PYTHON
unset HAVE_PYTHON
unset PYTHON_VERSION
unset PYTHON_PREFIX
unset PYTHON_EXEC_PREFIX
unset PYTHON_PLATFORM
unset pythondir
unset pkgpythondir
unset pyexecdir
unset pkgpyexecdir
AM_PATH_PYTHON([2])

即使在完成所有这些操作之后,第二个AM_PATH_PYTHON 也不会重写变量。我知道这些是宏,但应该有办法做到这一点。 Makefile 显示

py3execdir = ${exec_prefix}/lib/python3.3/site-packages
pyexecdir = ${exec_prefix}/lib/python3.3/site-packages
python3dir = ${prefix}/lib/python3.3/site-packages
pythondir = ${prefix}/lib/python3.3/site-packages

【问题讨论】:

    标签: autotools autoconf automake m4


    【解决方案1】:

    如果您最终选择了重写宏路线,您可能希望使用变量_AM_PYTHON_INTERPRETER_LIST 来编写包装宏AM_PATH_PYTHON2AM_PATH_PYTHON3,只设置_AM_PYTHON_INTERPRETER_LIST 并调用AM_PATH_PYTHON带有额外的后缀参数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-24
      • 1970-01-01
      • 2021-02-01
      • 2013-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多