Завершение работы скрипта Python с настройкой среды - PullRequest
0 голосов
/ 17 мая 2019

Я пытаюсь управлять настройкой нескольких пользовательских переменных среды перед запуском скрипта Python.Я бы предпочел выполнять манипуляции на чистом Python, чтобы он был резидентным для запуска Python и не сохранялся в сеансе командной строки после завершения сценария.

В идеале я хотел бы простопередать относительный путь сценария в качестве аргумента модулю, который оборачивает выполнение сценария.В частности:

C:\> python -m setup_environment path/to/script.py

Какова наилучшая практика для этого?Будет ли кто-нибудь использовать библиотеку subprocess для запуска другого процесса Python с установленными переменными среды?Так, например, setup_environment.py может выглядеть примерно так:

#!/usr/bin/env python

import os
import subprocess

def get_addtl_env_vars():
    return {'MY_ENV_VAR': 'VAL'}

if __name__ == "__main__":
    try:
        script_path = sys.argv[0]
        subprocess.run(script_path, env=get_addtl_env_vars())
    except IndexError:
        print("You must supply the path to a script!")

Это кажется мне разумным, но я действительно стараюсь убедиться, что я не пропускаю никаких проблем при порождении дополнительныхпроцесс, который может вести себя иначе, чем если бы я просто назвал скрипт автономным.

...