Member 13046390 Ответов: 2

Как получить путь к исполняемому файлу из его переменной окружения в Python?


Hi,

I am working on a python code and require to open an executable which is located in my C drive. I dont want to code something like, 

    file = open("C:\\Documents\\CodeRepo...\\codeplay.exe)

I want to use the environment variable called LOCATION_HOME to point to this exe location.

I dont know when do i set this environment variable. Do i set it in my python code or using the terminal in Windows?

Can someone please provide me insight on how to do this.

Thanks in advance.


Что я уже пробовал:

I tried to do as follows. I created an environment variable LOCATION_HOME which points to
C:\\Documents\\CodeRepo... and then I did file = open("LOCATION_HOME\\codeplay.exe") in python code. 

It gives error file not found.

2 Ответов

Рейтинг:
4

Jochen Arndt

Вы должны установить его в том же терминале, откуда запускается ваш скрипт Python (вручную или с помощью другого скрипта или пакетного файла), или установить его глобально (поиск "windows set permanent environment variable").

Тогда использовать

import os

path = os.environ["LOCATION_HOME"]

Смотреть также 16.1. ОС-разные интерфейсы операционной системы-документация Python 3.6.1rc1[^].


Member 13046390

Я хочу сделать что-то вроде этого:

Я запускаю свой код python из холостого хода. Как мне назначить это в функции подпроцесса, чтобы открыть exe-файл из этого места.
Я сделал что-то вроде этого:

выход = подпроцесс.Попен((LOCATION_HOME\\binaries\\codeplay.exe
), stdout=подпроцесс.Трубы).стандартный вывод


Правильно ли это?

Jochen Arndt

Нет, потому что вы дали неверный путь.

Воспользуйся
path = os. environ ["LOCATION_HOME"]
путь + = " \\binaries\\codeplay.exe"
Попен(путь)

Member 13046390

У меня все еще есть некоторые проблемы.

Дело в том, что я предоставляю некоторые дополнительные вещи в Popen, как показано ниже.

выход = подпроцесс.Popen (('path-testroot C:\\....\Configuration-projectfile ProjectFilewithTags-environment'
), stdout=подпроцесс.Трубы).стандартный вывод

не знаете, как это здесь интегрировать? Не могли бы вы помочь? А пока большое спасибо.

Jochen Arndt

Это не имеет отношения к первоначальному вопросу.

Я предлагаю открыть новый вопрос, чтобы другие тоже могли помочь (а вопросы могут быть лучше отформатированы, чем комментарии). Но прежде чем сделать это, я бы посоветовал подумать об этом и прочитать документацию.

Для аргументов:
Просто добавьте их в переменную:
path + = " - testroot ..."

Member 13046390

я пробовал, но это все равно не работает. Он говорит, что система не может найти файл. Я сделал отпечаток пути, и он выглядит правильным, но есть что-то похожее ...\\двоичные файлы\ ... две обратные косые черты рядом с двоичными файлами, верно?

Тем временем я также опубликовал новый вопрос.

Jochen Arndt

Эти уродливые окна пересекаются с обратной косой чертой.

При печати пути должна быть напечатана только одна обратная косая черта, но при назначении постоянной строки их должно быть две (первая "экранирует" вторую).

Проверьте также переменную окружения HOME_LOCATION. Если это имеет завершающую обратную косую черту, используйте
путь += "binaries\\codeplay.exe"

Или лучше использовать
ОС.путь.присоединиться(путь, "binaries\\codeplay.exe")
Это решит эту проблему.

Member 13046390

Спасибо. Теперь это работает!! Спасибо, Сэр!

Рейтинг:
1

Dave Kreskowiak

Вы могли бы легко найти ответ сами, просто погуглив "как разрешить переменную окружения в python".