2016-10-27 2 views
1

В python, как я могу программно добавить к своему системному пути? Я знаю sys.path.append и просто искал документы, но я немного запутался. Он говорит мне, что sys.path.append присоединяется только к PYTHONPATH, а не к существующему системному пути. Есть ли способ, который я могу программно добавить к системному пути временно?Как добавить программный путь к программному пути?

ответ

2

Просто обновлять окружающую среду PATH переменную:

old_path = os.environ['PATH'] 
try: 
    os.environ['PATH'] = "{}{}{}".format('/my/new/path', os.pathsep, old_path) 
finally: 
    os.environ['PATH'] = old_path 

С другой стороны, ее общие для программ, чтобы сохранить отдельную среду они используют при вызове других инструментов.

env = os.environ.copy() 
env['PATH'] = "{}{}{}".format('/my/new/path', os.pathsep, env['PATH']) 
# change other env here... 
subprocess.check_call(['my', 'tool'], env=env) 
+0

Это работает отлично, поэтому я исправлю, что 'sys.append.path' только сам' PYTHONPATH'? – Pyth0nicPenguin

+0

@ Pyth0nicPenguin Прежде всего это ['sys.path'] (https://docs.python.org/3/library/sys.html#sys.path) (' .append') и да только 'PYTHONPATH' , – xZise

+0

@ Pyth0nicPenguin - Не совсем. 'sys.path.append' добавляет к пути поиска модуля только для текущей программы. Если он выполняет другие программы, они будут видеть только «PYTHONPATH» из исходной среды. - И я имею в виду выполнение как дочерний процесс, а не импорт. Если вы выполняете другие скрипты python и хотите, чтобы они видели другой путь, вам нужно сыграть в игру 'os.environ' с' PYTHONPATH'. – tdelaney

Смежные вопросы