2016-04-11 18 views
1

Ich versuche, eine EXE-Datei (die EXE-Datei ist die Ausgabe von C++ - Projekt mit Visual Studio kompiliert) von einem Python-Programm zu starten. In den Eigenschaften dieses C++ Projektes (Konfiguration -> Eigenschaften-> debugging-> Umwelt) die folgende Einstellung in denwie PATH% PATH% als Umgebung in Python-Skript festlegen?

 (PATH = %PATH%;lib\testfolder1;lib\testfolder2) 

gegeben.
ist es eine Möglichkeit, um Umgebungsvariable PATH

  1. PATH =% PATH%
  2. lib \ testfolder1
  3. lib \ testfolder2

in einem Python-Programm gesetzt?

Vielen Dank im Voraus für Ihre Replay

+0

Pfad ist ein Betriebssystem-Umgebungsvariable, es vorübergehend beschädigen Wechsel (bis zum nächsten Start) die Zugriffspfade mehrerer Programme oder Bibliotheken. Wenn die Pfadänderung nur für die Laufzeit Ihres Programms erforderlich ist, speichern Sie besser eine Kopie des ursprünglichen Pfads und ändern Sie sie dann ** additiv **, damit sie vor dem Beenden des Programms auf ihren ursprünglichen Wert gesetzt werden kann. % PATH% bedeutet die Pfadvariable selbst, die eine Möglichkeit ist, die Pfadvariable additiv in os-Ebene zu setzen. Wie: C: \; C: \ d1, PATH =% PATH%; C: \ d2 ist das gleiche wie PATH = C: \; C: \ d1; C: \ d2 – Ihsan

+1

danke Lhsan für die detaillierte Erklärung. Ich habe den% PATH% zuvor falsch verstanden. Jetzt ist es funktioniert – sasi

+1

Wenn Sie eine ausführbare Datei starten, verwenden Sie 'subprocess.Popen', oder eine der High-Level-Funktionen wie' subprocess.check_output', und verwenden Sie ihre 'env' -Option, um eine modifizierte Umgebung an die Kind. Zum Beispiel: 'environ = os.environ.copy();' environ ['PATH'] + = os.pathsep + os.pathsep.join ([r'lib \ testfolder1 ', r'lib \ testfolder2']) ; 'p = subprocess.Popen ([exepath, arg1, arg2, ...], env = environ)'. – eryksun

Antwort

1

Sie PATH mit verschiedenen Methoden aktualisieren:

import sys 
sys.path += ["c:\\new\\path"] 
print sys.path 

oder

import os 
os.environ["PATH"] += os.pathsep + os.pathsep.join(["c:\\new\\path"]) 
print os.environ["PATH"]