我依靠python的os.environ来确定我的应用程序应该使用什么配置(比如不同主机的不同API键)。
看起来bulkloader无法访问这些变量,当bulkloader运行时,有没有办法让我知道我的应用程序的当前版本或当前主机是什么?
通常我在我的config_helper中做这件事
env = os.environ[ 'CURRENT_VERSION_ID' ].split( '.' )[ 0 ]bulkloader报告了一个关于CURRENT_VERSION_ID的KeyError,所以我使用了这个:
if os.environ.get('HTTP_HOST'):
host = os.environ['HTTP_HOST']
else:
host = os.environ['SERVER_NAME']
if host is not None:
if host.find( 'locahost' ):
env = 'local'
elif host.find( 'prod-server' ):
env = 'prod'
elif host.find( 'dev-server' ):
env = 'dev'
elif host.find( 'stage-server' ):
env = 'stage'
os.environ[ 'CURRENT_VERSION_ID' ] = env + '.1'然而,bulkloader抱怨说SERVER_NAME是一个无效的对象,这意味着它也找不到HTTP_HOST。
还有其他想法吗?
发布于 2012-07-24 10:42:17
只有当您的应用程序作为web应用程序运行时,HTTP_HOST和CURRENT_VERSION_ID等环境变量才可用。
也许您可以只使用env命令传递变量,如下所示:
$ env CURRENT_VERSION_ID=local.1 bulkloader ....https://stackoverflow.com/questions/11581086
复制相似问题