繁体   English   中英

如何将设置环境变量的批处理脚本与 python 脚本(3.7)集成?

[英]How to integrate a batch script that sets environment variables with a python script (3.7)?

我正在运行一个 python 脚本,该脚本使用批处理文件中的环境变量。 调用脚本后变量会丢失。 这是代码示例(example.py):

subprocess.Popen(env.cmd, shell=True).wait()

ENV_HOME = str(os.environ["ENV_HOME"])

我收到 KeyError 因为 ENV_HOME 没有定义。 我知道我可以使用 os.environ 设置环境变量以使我的脚本正常工作,但 env.cmd 是一个非常大的文件,它设置了许多路径,我需要 python 脚本工作。 可以将 env.cmd 读入 python 脚本,但由于要设置的路径很多,我正在寻找一种更简单的方法将环境变量与 python 脚本集成。

我一直在使用的解决方法是创建另一个 cmd 脚本:

call C:\Users\env.cmd

python example.py

如果我使用此过程,则定义 ENV_HOME。

子进程中设置的环境变量对父进程不可用 - 这正是环境的设计方式。 If you want to pass environment values from a child process to a parent, you need that child to output its environment (on standard output or in an agreed-upon file), using an agreed-upon format ( JSON or CSV would work well here ),然后拥有output的父进程,并相应设置其环境。

顺便说一句,这不是 Python 问题,我必须在过去编写的 shell 脚本中处理类似问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM