python - 从 python 脚本设置 bash 环境变量
问题描述
我正在运行 4 个 Python 脚本,简而言之应该设置环境变量。
重点是,使用os.environ['TEST']
(比如说)仅将其设置为运行它的 Python 脚本的范围。
$ python test.py arg1
$ echo $TEST < ------------
这将返回空白。而从 Python 脚本中打印会在 TEST 中显示一个值
os.environ.get('TEST')
如何从 python 脚本中设置环境变量?
作为另一种解决方法,(替代问题)如何在 Python 脚本之间共享数据?
解决方案
您似乎完全误解了流程和环境的工作方式。
$ python test.py arg1
$ echo $TEST
第一行将创建一个新进程,它是一个完全独立于 shell 本身的进程。虽然环境变量的值可能继承自父进程的环境,但新进程有自己的环境。
到第二行执行时,第一行的进程和环境甚至都不存在了!您不能轻易地从 Python 进程中修改 shell 进程的环境。
作为一种解决方法,换一种说法,(替代问题)如何在 python 脚本之间共享数据?
不是通过环境 - 在 Python 进程完成后,即当您的脚本退出时,它的环境已被拆除。“替代问题”可能过于宽泛,因为有很多方法可以在 Python 进程之间共享数据,但我建议您首先从文件读取/写入数据开始。
推荐阅读
- java - Java 代码在输出中提供额外字段
- android - 如何使用标记 vuforia 本机 android 制作 AR 视频以始终面对用户的相机
- performance - ActiveMQ 队列流量监控
- java - 如何在 Kotlin 中传递有界通配符类型参数?
- r - is_atomic(x) 中的错误:使用 readxl 时找不到对象“rlang_is_atomic”
- rxjs - 稍后如何在 rxjs 可观察流中使用属性?
- ajax - ajax 没有从 django 的表单中获取价值
- android - 我的应用程序应该实现后退按钮吗?
- php - php逐行拆分文本并获取特定元素
- python-3.6 - python 3.6 和 tdl “控制台未定义错误”