对于某些env变量,运行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)?
答案 0 :(得分:4)
在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。