【问题标题】:Read environment variables in Python在 Python 中读取环境变量
【发布时间】:2016-02-13 12:38:37
【问题描述】:

我在~/.profile中设置了一些环境变量:

SOMEVAR=/some/custom/path

并且已经做到了source ~/.profile。所以当我这样做时:

echo $SOMEVAR

它打印正确的目录:

/some/custom/path

但是,当我尝试在 Python 脚本中读取此变量时,它会失败:

import os

print(os.environ["SOMEVAR"])

我明白了:

Traceback (most recent call last):
  File "environment_test.py", line 3, in <module>
    print os.environ["SOMEVAR"]
  File "/usr/lib64/python2.7/UserDict.py", line 23, in __getitem__
    raise KeyError(key)
KeyError: 'SOMEVAR'

怎么了?

【问题讨论】:

    标签: python python-2.7 environment-variables


    【解决方案1】:

    您不希望启动的进程看到您创建的所有废话(= 变量)。因此,常规变量仅在您正在执行的 shell 中可见。

    你必须导出变量:

    export SOMEVAR=/some/custom/path
    

    【讨论】:

    • ~/.profile?但是为什么echo $SOMEVAR 还在工作呢?
    • 该变量存在于您的 shell(获取 .profile 的进程)中,但不会导出到子进程(您的 python 脚本)。
    • 太好了,谢谢你的解释!我添加了export,它现在可以工作了:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-09
    • 2022-07-29
    • 2017-03-06
    • 2019-07-27
    • 1970-01-01
    相关资源
    最近更新 更多