我正在尝试在运行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!")
这对我来说似乎是合理的,但我实际上是在确保在生成一个可能与我单独调用该脚本时可能会有不同行为的附加进程中,我不会忽略任何类型的问题。