python - 如何在 Python 中设置父 shell 的环境变量?

标签 python shell environment-variables

<分区>

我正在尝试从 Python 中修改父 shell 上的环境变量。到目前为止我所做的尝试没有奏效:

~ $ export TESTING=test
~ $ echo $TESTING
test
~ $
~ $
~ $ python
Python 2.7.10 (default, Jun  1 2015, 18:05:38)
[GCC 4.9.2] on cygwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.environ['TESTING']
'test'
>>> os.environ['TESTING'] = 'changed'
>>> os.environ['TESTING']
'changed'
>>> quit()
~ $
~ $
~ $ echo $TESTING
test

这就是我所能想到的。可以吗? Python如何设置父shell的环境变量?

最佳答案

这是不可能的。

子进程从它们的父进程继承它们的环境而不是共享它们。因此,您对环境所做的任何修改将反射(reflect)在子 (python) 进程中。实际上,您只是覆盖 os 模块根据您的 shell 环境创建的字典,而不是您的 shell 的实际环境变量。

https://askubuntu.com/questions/389683/how-we-can-change-linux-environment-variable-in-python

Why can't environmental variables set in python persist?

关于python - 如何在 Python 中设置父 shell 的环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58248819/

相关文章:

python - 值错误 : array is too big - cannot understand how to fix this

mysql - 在shell脚本上加密Mysql密码

regex - 使用 grep 或 sed 的正则表达式不起作用

xcode - 为什么 PATH 不适用于从 Xcode 执行的自定义 shell 脚本?

logging - 有没有办法以编程方式更改日志箱的默认日志记录级别?

使用init.d运行的Python程序不写入数据

python - 用更少的比较比较两个元组列表的欧几里得距离python

Python 时间日期匹配

macos - 批量删除文件扩展名 OSX

bash - 在 zsh 上运行 bash 脚本不会获取环境变量