【问题标题】:Python os.path.expandvars only works for some variablesPython os.path.expandvars 仅适用于某些变量
【发布时间】:2018-06-14 12:49:34
【问题描述】:

对于某些环境变量,运行 os.path.expandvars 失败。看起来太基础了,不真实。

$ echo $HOSTTYPE 
x86_64
$ echo $HOME     
/labhome/eladw
$ python -c 'import os; print os.path.expandvars("$HOSTTYPE")'
$HOSTTYPE
$ python -c 'import os; print os.path.expandvars("$HOME")'
/labhome/eladw

知道我缺少什么(我正在运行 python 2.7)吗?

【问题讨论】:

标签: python environment-variables


【解决方案1】:

在 shell 中设置的环境变量不会自动导出到子进程。仅仅因为你的 shell 有一个 HOSTTYPE 变量,并不意味着这个变量对子进程可见。

先导出变量:

$ export HOSTTYPE

您可以在一个步骤中将设置和导出变量与:

$ export HOSTTYPE=x86_64

演示:

$ HOSTTYPE=x86_64
$ python -c 'import os; print os.path.expandvars("$HOSTTYPE")'
$HOSTTYPE
$ export HOSTTYPE
$ python -c 'import os; print os.path.expandvars("$HOSTTYPE")'
x86_64

Difference between environment variables and exported environment variables in bash

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-24
    • 2018-11-09
    • 2012-10-30
    • 2020-10-21
    • 2019-04-11
    相关资源
    最近更新 更多