Der einfachste Weg des Include-Pfad zu erhalten, ist die sysconfig.get_path()
function zu verwenden:
import sysconfig
include_path = sysconfig.get_path('include')
Dieser Weg bereits für virtualenvs eingestellt wird. Für Scripting Zwecke außerhalb Python, können Sie entweder den Pfad direkt drucken:
$ python -c 'import sysconfig; print(sysconfig.get_path("include"))'
oder allesysconfig
Daten erhalten, indem Sie das Modul als Skript ausgeführt wird:
$ python -m sysconfig
dann die Ausgabe analysieren, die Dumps aufstehen.
Wenn Sie nur den Namen der ausführbaren Datei (mit der m
im Lieferumfang enthalten) wollen, können Sie das von der sys.executable
variable; dazu gehört auch die m
Suffix:
>>> import sys
>>> sys.executable
'/usr/bin/python3.5m'
Ab Python 3.2, können Sie auch die sys.abiflags
variable verwenden; es ist m
in diesem Fall gesetzt:
>>> sys.abiflags
'm'
Auch PEP 3149 sehen.
Für frühere Python-Versionen, die die verschiedenen Flaggen die Suffixe beeinflussen, sind über die oben genannte sysconfig
Modul als Konfigurationsvariablen zur Verfügung noch:
pymalloc = bool(sysconfig.get_config('WITH_PYMALLOC'))
pydebug = bool(sysconfig.get_config('WITH_PYDEBUG'))
wideunicode = bool(sysconfig.get_config('WITH_WIDE_UNICODE'))
Beachten Sie, dass ubuntu kompiliert lediglich mehrere Binärdateien und stellt den Namen der ausführbaren Datei der widerzuspiegeln Konfigurationsoption gewählt; Auf anderen Systemen spiegeln sich die ABI-Flags nicht unbedingt im ausführbaren Namen wider.
Interessant. Ich bekomme nicht das selbe wie Sie, wenn Sie einen virtualenv (aktualisierte Frage) verwenden –
@ J.C.Leitão: Ich feuere ein vm auf, wenn ich im Büro komme. –
'sysconfig.get_path ('include')' ist definitiv die Antwort auf die Frage. :) –