2017-07-09 1 views
0

Ich habe ein Python-Skript, das manchmal von der Befehlszeile und manchmal von Eclipse (während SW-Build) aufgerufen wird.Woher weiß ich, ob ich ein Python-Skript von Eclipse

Gibt es eine Möglichkeit innerhalb des Python-Skripts zu wissen, ob es von Eclipse aus aufgerufen wird (ohne die Befehlszeilenargumente des Skripts zu senden)?

Danke.

Antwort

0

ich Eclipse-nicht mehr verwenden, da PyCharm ist viel effizienter für Python-Programmierung, aber hier sind einige Ideen, können Sie versuchen:

⬥ Sie haben (oder Sie können festlegen) eine Umgebungsvariable, wenn das Skript wird mit Eclipse gestartet.

Zum Beispiel mit PyCharm haben wir:

import os 

print("PYCHARM_HOSTED: {!r}".format(os.environ['PYCHARM_HOSTED'])) 
# -> PYCHARM_HOSTED: '1' 

Sie eine ähnliche Umgebungsvariable mit Eclipse haben. Überprüfen Sie das os.environ Wörterbuch.

⬥ Sie einen anderen virtualenv haben, überprüfen Sie die sys.executable Wert:

import sys 

print(sys.executable) 
# -> /Users/laurentlaporte/virtualenv/my_app/bin/python 

⬥ Wenn Eclipse-Python-Anwendung starten, erstellt es ein Kind-Prozess. In Ihrer Python-Anwendung können Sie den übergeordneten Prozess durchsuchen. Es ist ein wenig komplex, so ...

Um dies zu tun, müssen Sie PsUtil verwenden.

+0

Danke für die Antwort, aber mein Anwendungsfall ist anders. Ich erstelle eine C/C++ - Anwendung in zwei Varianten - von der Befehlszeile und von Eclipse. Build-System ruft einige Python-Skripte auf. Ich wünsche mir, dass die Ausgabe von stdout des Python-Skripts abhängig von der aufrufenden Plattform unterschiedlich sein wird. deshalb muss ich wissen, ob das Skript von der Finsternis läuft ... Irgendeine Idee? Danke – Hanans

Verwandte Themen