2011-03-30 14 views
1

os.environにはLinux上でHOST環境変数が含まれていない可能性があります。os.environにHOST変数が含まれていません

> echo $HOST; python -c 'import os; print "HOST" in os.environ' 
bbox 
False 
> echo $HOST; HOST=$HOST python -c 'import os; print "HOST" in os.environ' 
bbox 
True 

EDIT:しかし、なぜ明示的にエクスポートせずUSER, PS1, LANG,...のように、他の変数の中で最も利用可能exportへの提案をお寄せいただきありがとうございますか!

+0

[os.uname](http://docs.python.org/library/os.html#os.uname)を使用することもできます。 'os.uname [1]'。 –

+1

他の変数は既にエクスポートされています。 –

+0

はい、私は理解していますが、どのプロセスがそれらをエクスポートしているのか分かりません。シェルの起動ファイルにはこの種のものはありません。 – Bernhard

答えて

3

これは、あなたのシェルでHOSTが定義されたという変数を持っているが、それを輸出していないことを意味します。

これを試してみてください:彼らはこのように輸出されている場合を除き

export HOST 

環境変数は子プロセスに渡されません。

2

シェルで変数を設定しても、サブプロセスで使用できるようにはなりません。変数もエクスポートする必要があります。

$ export HOST 
$ python ... 
関連する問題