0

「MYPROJECT_PRODUCTION」という環境変数が True に設定されている場合、変数に別の値を割り当てる必要があります。

メイン コードは mycode.py にあります。ディレクトリ構造は次のとおりです。

mypythondir/
           mycode.py
           module1.py

mycode.py

import os
if __name__=='__main__':
    MYNAME='denny'
    if os.environ.get('MYPROJECT_PRODUCTION',True):
        from module1 import *
    print 'myname=',MYNAME

module1.py

MYNAME='damon'

ターミナルを開きました(ubuntuで)実行したことを確認するためだけに

mypythondir$echo $MYPROJECT_PRODUCTION

空の出力..したがって、変数はまだ設定されていません。環境変数を設定せずに、mypythondir から mycode.py を実行しました

mypythondir$python mycode.py

mypythondir$myname= damon

なぜ値が「damon」なのか混乱しています.MYPROJECT_PRODUCTIONが設定されておらず、os.environにキー「MYPROJECT_PRODUCTION」がないため、「denny」である必要があります。

それから私は設定しました

mypythondir$export MYPROJECT_PRODUCTION=False

もう一度コードを実行しましたが、結果は同じです..しかし、今回はキーMYPROJECT_PRODUCTIONos.environ

ここで何が起きてるの ?誰かがこれを理解するのを手伝ってくれますか?

4

2 に答える 2

3

デフォルト値は ですTrue。また、 string を含む空でない値はすべて"False"true です。デフォルト値を false に変更するか、完全に省略します。

于 2013-01-22T07:16:33.750 に答える
1

os.environ は単なるマッピング オブジェクトです。単純に os.getenv() を試しましたか? このリンクを参照してください: http://docs.python.org/2/library/os.html#process-parameters

于 2013-01-22T07:20:33.760 に答える