On Sat, 10 Jul 2021, Matti Picus wrote:
The canonical way is to use sysconfig

pypy -c "import sysconfig;print(sysconfig.get_config_var('EXT_SUFFIX'))"

.pypy37-pp73-x86_64-linux-gnu.so


On python2.7 use 'SO'

~/oss/pypy2.7-HEAD/bin/pypy -c "import sysconfig;print(sysconfig.get_config_var('SO'))"

.pypy-73.so


This is exactly what I have been looking for.  Thenk you very much!


In case anyone is interested, here is my resulting autoconf macro:

    https://gist.github.com/rlutz/334b995462e8d52ae2ae102334b45170

This is an extended version of the standard `AM_PATH_PYTHON' macro. It takes two arguments: a minimum Python 2 version, and a minimum Python 3 version.

    AM_PATH_PYTHON_EXT([2.7], [3.5])

In case your package supports either only Python 2 or only Python 3, leave the other argument blank.

    AM_PATH_PYTHON_EXT([2.7], [])
    AM_PATH_PYTHON_EXT([], [3.5])

This macro chooses the newest available version of PyPy matching the arguments, falling back to CPython if PyPy isn't available. It defines the following output values:

    PYTHON - the name of the Python executable
    PYTHON_VERSION - the Python version in the form MAJOR.MINOR
    PYTHON_PLATFORM - the value of sys.platform

    PYTHON_EXT_SUFFIX - filename extension for extension modules
    PYTHON_CFLAGS - CFLAGS for compiling extension modules
    PYTHON_LDFLAGS - LDFLAGS for compiling extension modules

    PYTHON_PREFIX, PYTHON_EXEC_PREFIX - the correct prefixes
    pythondir, pkgpythondir - where to install pure-Python packages
    pyexecdir, pkgpyexecdir - where to install packages that contain
                              extension modules

The macro can be used as a drop-in replacement for AM_PATH_PYTHON (but beware of the changed arguments). If you are using Autotools for building Python extensions, you are probably also calling PKG_CHECK_MODULES for obtaining the PYTHON_CFLAGS; this call isn't necessary any more and should be removed.

Roland

_______________________________________________
pypy-dev mailing list
pypy-dev@python.org
https://mail.python.org/mailman/listinfo/pypy-dev

Reply via email to