Я пытаюсь управлять настройкой нескольких пользовательских переменных среды перед запуском скрипта 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!")
Это кажется мне разумным, но я действительно стараюсь убедиться, что я не пропускаю никаких проблем при порождении дополнительныхпроцесс, который может вести себя иначе, чем если бы я просто назвал скрипт автономным.