Python.h quirk

Hal Murray hmurray at megapathdsl.net
Sun Sep 22 08:34:47 UTC 2019


esr at thyrsus.com said:
> The problem, of course, is that the Python 2 and Python3 development package
> both want to own Python.h,  and the name is not versioned. 

They are in different directories.  The version number is in the directory.
  [murray at hgm raw]$ locate Python.h
  /usr/include/python2.7/Python.h
  /usr/include/python3.7m/Python.h
  [murray at hgm raw]$

I don't know what the "m" in "3.7m" is for.


waf sets things up with a --I/usr/include/python2.7 and -lpython2.7
[murray at hgm raw]$ ldd ./build/main/pylib/ntpc.cpython-37m-x86_64-linux-gnu.so
        linux-vdso.so.1 (0x00007ffc5e173000)
        libpython2.7.so.1.0 => /lib64/libpython2.7.so.1.0 (0x00007faec6933000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007faec6912000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007faec690c000)
        libutil.so.1 => /lib64/libutil.so.1 (0x00007faec6907000)
        libm.so.6 => /lib64/libm.so.6 (0x00007faec67c1000)
        librt.so.1 => /lib64/librt.so.1 (0x00007faec67b7000)
        libcrypto.so.1.1 => /lib64/libcrypto.so.1.1 (0x00007faec64d4000)
        libc.so.6 => /lib64/libc.so.6 (0x00007faec630e000)
        /lib64/ld-linux-x86-64.so.2 (0x00007faec6bcd000)
        libz.so.1 => /lib64/libz.so.1 (0x00007faec62f4000)
[murray at hgm raw]$ 


It works if I say:
  python3 ./waf ...

Seems like a simple bug in waf.  It's getting the version info from the command line argument rather than asking the running python what version it is.  Or something like that.



-- 
These are my opinions.  I hate spam.





More information about the devel mailing list