¿Cómo obtener la ruta actual del intérprete de Python desde dentro de un script de Python?

Quiero ejecutar un script de Python desde un script de Python con subprocess , y deseo hacerlo utilizando el mismo intérprete para cada uno de ellos.

Estoy usando virtualenv, así que me gustaría hacer algo como:

 subprocess.Popen('%s script.py' % python_bin) 

¿Cómo consigo python_bin ?

Debería ser /usr/bin/python fuera de virtualenv, y /path/to/env/bin/python en virtualenv.

El nombre del intérprete se almacena en la variable sys.executable

Lo encontré por:

 >>> import sys >>> help(sys) ... DATA __stderr__ = ', mode 'w' at 0x110029140> __stdin__ = ', mode 'r' at 0x110029030> __stdout__ = ', mode 'w' at 0x1100290b8> api_version = 1013 argv = [''] builtin_module_names = ('__builtin__', '__main__', '_ast', '_codecs', ... byteorder = 'big' copyright = 'Copyright (c) 2001-2009 Python Software Foundati...ematis... dont_write_bytecode = False exc_value = TypeError('arg is a built-in module',) exec_prefix = '/usr/bin/../../opt/freeware' executable = '/usr/bin/python_64' 

Sólo para asegurarse

 >>> import sys >>> sys.executable '/usr/bin/python' >>>