【问题标题】:Creating Environment Variables in Python does not seem to work [duplicate]在 Python 中创建环境变量似乎不起作用 [重复]
【发布时间】:2018-05-07 00:03:21
【问题描述】:

我正在编写一个 python 脚本,我希望这个脚本将一些值写入一个在运行这个脚本之前不存在的环境变量。我正在运行的操作系统是 Ubuntu。所以理想情况下,执行脚本后,我应该能够在终端上使用 echo 命令显示环境变量。我的意思是终端行为应该是这样的:

> echo $NEW_VAR
environmentvarvalue

我也希望能够在不同的 python 脚本中访问这个环境变量。所以下面的代码:

import os
output = "The value of NEW_VAR is " + os.environ.get('NEW_VAR')
print output

在运行初始脚本后运行时,执行时应产生以下输出:

The value of NEW_VAR is environmentvarvalue

经过一些研究后,我在初始脚本中尝试了以下代码:

import os
os.environ['NEW_VAR'] = 'environmentvarvalue'

但环境变量仅在初始脚本的范围内保存,并且当我在执行脚本后在终端上运行 echo 命令时,行为与变量不存在时的行为相同。我的代码有问题吗?或者有没有更好的方法通过python分配环境变量?我知道我可能可以从 subprocess python 模块运行导出命令,但这似乎不是解决这个问题的正确方法。

【问题讨论】:

  • 它只是用于python会话,当你在python中设置它时,如果你想永久设置它,你需要类似:stackoverflow.com/questions/17657686/…
  • 不写入 .bashrc 文件就没有办法吗?当然,python 必须有一个可以以更清洁的方式执行此操作的模块,对吧?
  • 您没有说明为什么要将环境变量设置为永久。

标签: python linux ubuntu


【解决方案1】:

您不能使用环境变量来执行此操作。脚本完成后,您的环境将被破坏。父进程(你的 shell)永远不会看到这个变量。

您需要一种不同的方法。可能写入文件或数据库。

【讨论】:

    猜你喜欢
    • 2012-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多