Pythonアプリケーションでアクセスしたい環境変数を設定します。この値をどうやって取得するのですか?
環境変数は os.environ を通してアクセスされます。
import os
print(os.environ['HOME'])
あるいは、以下を使ってすべての環境変数のリストを見ることができます。
os.environ
時々あなたは完全なリストを見る必要があるかもしれません!
# using get will return `None` if a key is not present rather than raise a `KeyError`
print(os.environ.get('KEY_THAT_MIGHT_EXIST'))
# os.getenv is equivalent, and can also give a default value instead of `None`
print(os.getenv('KEY_THAT_MIGHT_EXIST', default_value))
Pythonのデフォルトのインストール WindowsではC:\Python
です。あなたがpythonを実行している間あなたが調べたいならばあなたはすることができます:
import sys
print(sys.prefix)
キーが存在するかどうかを確認する(True
またはFalse
を返す)
'HOME' in os.environ
キーを印刷するときにget()
を使うこともできます。デフォルトを使いたい場合に便利です。
print(os.environ.get('HOME', '/home/username/'))
/home/username/
がデフォルトです。
最初の質問(最初の部分)は「Pythonで環境変数を確認する方法」でした。
$ FOOが設定されているかどうかを確認する方法は次のとおりです。
try:
os.environ["FOO"]
except KeyError:
print "Please set the environment variable FOO"
sys.exit(1)
あなたは環境変数にアクセスすることができます。
import os
print os.environ
PYTHONPATHまたはPYTHONHOME環境変数の内容を確認してみてください。おそらく、これは2番目の質問に役立ちます。しかし、あなたはそれを明確にするべきです。
環境変数に関しては:
import os
print os.environ["HOME"]
きちんとした答えが可能になる前に、もう少しあなたの2番目のポイントを肉付けしなければならないでしょう。
import os
for a in os.environ:
print('Var: ', a, 'Value: ', os.getenv(a))
print("all done")
これにより、すべての環境変数とその値が表示されます。
本番Webアプリケーションコードでコードを使用する予定の場合は、
Django/Flaskのような任意のWebフレームワークを使用して、 envparse のようなプロジェクトを使用します。それを使用すると、定義済みタイプとして値を読み取ることができます。
from envparse import env
# will read WHITE_LIST=hello,world,hi to white_list = ["hello", "world", "hi"]
white_list = env.list("WHITE_LIST", default=[])
# Perfect for reading boolean
DEBUG = env.bool("DEBUG", default=False)
注:kennethreitzの autoenv はプロジェクト固有の環境変数を作成するための推奨ツールです。autoenv
を使用している人は.env
ファイルを非公開にしてください(一般にはアクセスできません)。
Python 3では:
#!/usr/bin/python3
import os
for param in os.environ.keys():
print("%s: %s " % (param, os.environ[param]))
これは import os が行われたと仮定した1行のオプションです。
for key in os.environ: print(key,':',os.environ[key])
またはフォーマット付き:
for key in os.environ: print('{:>30} {:<4} {:}'.format(key,':',os.environ[key]))
os.environ.get
の場合:
try:
env_value = os.environ.get("key_maybe_not_exist")
except KeyError:
print("Not exist environment value for %s" % "key_maybe_not_exist")
または
if "key_maybe_not_exist" in os.environ:
existed_env_value = os.environ["key_maybe_not_exist"]
os.getenv
の場合:
existed_env_value = os.getenv("key_maybe_not_exist")
に相当:
existed_env_value = os.getenv("key_maybe_not_exist", default=None)
実際には、これはこれで終わりです。
import os
for item, value in os.environ.items():
print('{}: {}'.format(item, value))
または単に:
for i, j in os.environ.items():
print(i, j)
パラメータの値を表示するには
print(os.environ['HOME'])
または
print(os.environ.get('HOME')
値を設定するには:
os.environ['HOME'] = '/new/value'
たくさんの素晴らしいライブラリもあります。 Envs 例えば、あなたはあなたの環境変数からオブジェクトをパースすることができます。それはradです。例えば:
from envs import env
env('SECRET_KEY') # 'your_secret_key_here'
env('SERVER_NAMES',var_type='list') #['your', 'list', 'here']