2014-01-15 24 views
0

在OSX Maverick的終端設置我的環境變量是這樣的:Python的os.getenv()似乎並沒有在OSX小牛工作

export FLASK_CONF=DEV 

然後用export我可以證實,該變量設置。

declare -x FLASK_CONF="DEV" 
... 

現在,當我GAE下運行我​​的應用程序:dev_appserver.py src/

我得到的生產環境已經加載,而不是開發環境的信息:

INFO  2014-01-15 23:39:41,702 __init__.py:38] Staging/Production Env found 

這是代碼:

if os.getenv('FLASK_CONF') == 'DEV': 
    logging.info("DEV ENv found") 
    app.config.from_object('application.settings.Development') 
elif os.getenv('FLASK_CONF') == 'TEST': 
    logging.info("TEST Env found") 
    app.config.from_object('application.settings.Testing') 
else: 
    logging.info("Staging/Production Env found") 
    app.config.from_object('application.settings.Production') 

我100%確定這在以前的山獅上運行良好。它可能與Maverick OSX如何設置/使用env變量有關嗎?任何建議如何解決這個問題?

+0

[這裏](http://pastebin.com/tXRAwkEe)是一個快速測試與小牛隊證明它的設置環境變量和Python(小牛隊內置的那種,但同樣的東西可以在機器上使用CPython和PyPy的另外7種版本...)能夠看到它們。 – abarnert

+0

所以大概是有其他錯誤。爲了調試它,我們需要一個完整的例子(參見[MCVE](http://stackoverflow.com/help/mcve)),它重現了這個問題,而不僅僅是一個代碼片段,它自己可以工作,但不會在你的環境中工作。 – abarnert

回答

0

嘗試在app.yaml中定義的環境變量使用env_variables

env_variables: 
    FLASK_CONF: 'DEV' 
+0

是的,它的作品。謝謝。看起來GAE在孤立的環境下運行。 – Houman

+0

@Hooman - devappserver的目標是重現您的應用在雲中運行時的環境。 –