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/35780715/

相关文章:

python - 如何使用 python-docx 添加带有索引的数据框

python - PostgreSQL/performance 一个通用游标或为每个查询创建

java - 创建 shell 脚本以在 Linux 上运行 Java 程序

BASH Loop 怎么走呢?

reactjs - 使用 nextjs 将环境变量部署到 Vercel

python - 在python中的字典中切换键和值

python - 如何使用 Python 将格式化文件解析为变量?

java - 调用 shell 脚本包含来自 java 的 SSH

python - Django- "python manage.py runserver"不工作

iphone - 环境变量 iOS