我有一个要求,其中1个进程将一个值设置为环境变量,然后使用以下命令在python中读取该值
os.environ
根据python doc:
此映射是在第一个捕获的
导入os模块的时间
通常在Python启动期间
处理site.py的一部分。更改为
这段时间之后的环境
没有反映在os.environ中,
通过修改进行的更改除外
os.environ直接。
我的问题是进程每次调用python脚本时都会设置/更改变量。
请告诉我一种读取更改后的值的方法。
谢谢,
最佳答案
我想您可以随时使用os.getenv()
来获取环境变量的值,这将反映最新状态。
更新:请注意,没有一个“全局”环境,至少在Linux上没有。引用维基百科:
在所有Unix和类Unix系统中,每个进程都有自己的专用环境变量集。默认情况下,创建进程时,它将继承其父进程的重复环境,但父进程在创建子进程时进行的显式更改除外。
因此,如果您从同一父进程(例如bash
)启动(派生)两个进程,并在其中一个进程中更改环境变量,则另一个进程将看不到它,因为它使用了该环境的另一个副本。父进程。同样,如果在启动子流程之后在父流程中更改环境,则子流程将看不到更改,因为它们已经创建了环境的私有副本。
关于python - 在Python中获取更改的环境变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5935404/