首页 > 解决方案 > 从 python 脚本设置 bash 环境变量

问题描述

我正在运行 4 个 Python 脚本,简而言之应该设置环境变量。

重点是,使用os.environ['TEST'](比如说)仅将其设置为运行它的 Python 脚本的范围。

$ python test.py arg1
$ echo $TEST    < ------------

这将返回空白。而从 Python 脚本中打印会在 TEST 中显示一个值

os.environ.get('TEST')

如何从 python 脚本中设置环境变量?

作为另一种解决方法,(替代问题)如何在 Python 脚本之间共享数据?

标签: pythonbashenvironment-variables

解决方案


您似乎完全误解了流程和环境的工作方式。

$ python test.py arg1
$ echo $TEST

第一行将创建一个进程,它是一个完全独立于 shell 本身的进程。虽然环境变量的值可能继承自父进程的环境,但新进程有自己的环境。

到第二行执行时,第一行的进程和环境甚至都不存在了!您不能轻易地从 Python 进程中修改 shell 进程的环境。

作为一种解决方法,换一种说法,(替代问题)如何在 python 脚本之间共享数据?

不是通过环境 - 在 Python 进程完成后,即当您的脚本退出时,它的环境已被拆除。“替代问题”可能过于宽泛,因为有很多方法可以在 Python 进程之间共享数据,但我建议您首先从文件读取/写入数据开始。


推荐阅读