2009-04-14 7 views
80

Grundsätzlich möchte ich ein Handle des Python-Interpreter bekommen, damit ich eine Skriptdatei übergeben kann (von einer externen Anwendung).Wie wird der Speicherort python.exe programmgesteuert abgerufen?

+3

@Bhargav Rao: Wie kann diese Frage, die 1 Jahr _before_ die Frage gestellt wurde, dass es angeblich ein Duplikat, wäre ein Duplikat davon zu sein? Es ist anders herum. – mhawke

+0

@mhawke Der andere hatte mehr Ansichten als das und war besser formuliert. Daher habe ich es in die umgekehrte Richtung getäuscht. TBH, Beide sagen das Gleiche, also können wir sogar für die Fusion flaggen. –

+2

@BhargavRao: Ja, es ist besser geschrieben und der Titel ist wahrscheinlich dafür verantwortlich. Auch die angenommene Antwort ist besser und (jetzt) ​​enthält einen Link zu der Dokumentation, also insgesamt denke ich, dass Sie Recht haben. – mhawke

Antwort

135

Das funktioniert in Linux, vielleicht auch in Windows?

>>> import sys 
>>> print sys.executable 
/usr/bin/python 
+2

Yep - >>> Import sys | >>> print sys.executable | C: \ Python25 \ pythonw.exe – Smashery

+2

Funktioniert auch unter Mac OS X. – FogleBird

+2

Ich denke, in einer py2exe kompilierten App würde es auf die ausführbare Datei für die App zeigen und nicht auf die python.exe. Jemand müsste das allerdings bestätigen. – FogleBird

4

Ich denke, es hängt davon ab, wie Sie Python installiert haben. Beachten Sie, dass Sie mehrere Python-Installationen auf meinem Computer ausführen können. wenn Sie über eine msi einer Version von Python 2.2 oder höher jedoch installieren, ich glaube, es ist ein Registrierungsschlüssel erstellt, wie so:

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ Currentversion \ App Paths \ python.exe

, die diesen Wert auf meinem Rechner gibt:

C: \ Python25 \ python.exe

Sie den Registrierungsschlüssel lesen Sie einfach den Standort zu erhalten.

Sie können Python jedoch über ein xcopy-ähnliches Modell installieren, das Sie an einem beliebigen Ort haben können, und Sie müssen nur wissen, wo es installiert ist.

+0

Wenn es in den App-Pfaden ist, musst du nicht einmal den Ort kennen, oder? ;) – Gleb

+8

Das Suchen in der Registry ist nicht wirklich sinnvoll, da man nicht weiß, ob man den Python ausführt, über den man in der Registry spricht. – GreenAsJade

30

sys.executable ist nicht zuverlässig, wenn in einer eingebetteten Python-Umgebung gearbeitet wird. Meine Vorschläge sind es zu folgern aus

import os 
os.__file__ 
Verwandte Themen