2016-04-11 2 views
1

Je tente de démarrer un fichier exe (le fichier exe est la sortie du projet C++ compilé avec Visual Studio) à partir d'un programme python. Dans les propriétés de ce projet C++ (configuration -> Propriétés-> debugging-> environnement) le paramètre suivant dans lecomment définir PATH =% PATH% comme environnement dans le script Python?

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

est donné.
est-il possible de définir la variable d'environnement chemin vers

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

dans un programme de python?

Merci à l'avance pour votre replay

+0

Path est une variable d'environnement du système d'exploitation, la modification peut endommager temporairement (jusqu'au prochain démarrage) les chemins d'accès de plusieurs programmes ou bibliothèques. Si la modification du chemin n'est requise que pour l'exécution de votre programme, mieux vaut sauvegarder une copie du chemin d'origine, puis le modifier ** additivement **, afin qu'il puisse être initialisé à sa valeur d'origine avant de quitter le programme. % PATH% signifie la variable de chemin elle-même, qui est un moyen au niveau de l'OS de définir la variable de chemin de manière additive. Tels que: Si le chemin est C: \; C: \ d1, PATH =% PATH%; C: \ d2 est le même que le typage PATH = C: \; C: \ d1; C: \ d2 – Ihsan

+1

remercie Lhsan pour l'explication détaillée. J'ai le% PATH% mal compris avant. Maintenant, cela fonctionne – sasi

+1

Si vous démarrez un exécutable, utilisez 'subprocess.Popen', ou l'une des fonctions de haut niveau telles que' subprocess.check_output', et utilisez son option 'env' pour passer un environnement modifié au enfant. Par exemple: 'environ = os.environ.copy();' 'environ ['CHEMIN'] + = os.pathsep + os.pathsep.join ([r'lib \ testfolder1 ', r'lib \ testfolder2']) ; '' p = subprocess.Popen ([exepath, arg1, arg2, ...], env = environ) '. – eryksun

Répondre

1

Vous pouvez mettre à jour PATH en utilisant plusieurs méthodes:

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

ou

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