19

Is there a way to tell which compiler was used to build a Python install on a specific linux machine?

I tried using ldd on the Python dynamic libraries [1], but I didn't manage to understand if it was compiled with gcc or Intel compiler.

[1]

$ ldd libpython2.7.so.1.0
linux-vdso.so.1 =>  (0x00007fff4a5ff000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00002ab8de8ae000)
libdl.so.2 => /lib64/libdl.so.2 (0x00002ab8deac9000)
libutil.so.1 => /lib64/libutil.so.1 (0x00002ab8deccd000)
libm.so.6 => /lib64/libm.so.6 (0x00002ab8deed1000)
libc.so.6 => /lib64/libc.so.6 (0x00002ab8df154000)
/lib64/ld-linux-x86-64.so.2 (0x0000003b9a400000)
Andrea Zonca
  • 8,378
  • 9
  • 42
  • 70

1 Answers1

23

Easiest way in the REPL, you have it in sys.version:

>>> import sys
>>> print(sys.version)
3.7.0 (default, Jul 24 2018, 19:03:02) 
[GCC 8.1.0]

It should also usually tell you when you start the interactive interpreter:

$ python3
Python 3.7.0 (default, Jul 24 2018, 19:03:02) 
[GCC 8.1.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

Easiest way at the shell: pass the command line option -V twice to print info about the build. It seems this is a new feature and is missing in Python 2.

$ python3 -VV
Python 3.7.0 (default, Jul 24 2018, 19:03:02) 
[GCC 8.1.0]
wim
  • 338,267
  • 99
  • 616
  • 750
  • 1
    thanks! this worked, I was stuck on `python --version` which is quite useless in this sense. btw, nobody reads the startup headers! :) – Andrea Zonca Mar 12 '13 at 00:10
  • It seems that the option `-VV` shows the compiler info only since python version > 3.5 (at least for my installations). – colidyre May 16 '19 at 10:49