1
当我在本地运行谷歌应用程序引擎时,sys.platform
报告linux3
。这可能意味着我也在Linux平台上运行。如何判断代码是否在Google App Engine上运行?
什么是告诉我的代码在谷歌应用程序引擎环境中运行的权威方法?
当我在本地运行谷歌应用程序引擎时,sys.platform
报告linux3
。这可能意味着我也在Linux平台上运行。如何判断代码是否在Google App Engine上运行?
什么是告诉我的代码在谷歌应用程序引擎环境中运行的权威方法?
一种方法是检查APPENGINE_RUNTIME
环境变量设置
在蟒蛇会
import os
if 'APPENGINE_RUNTIME' in os.environ.keys():
# working in appengine environment
这是不是正规的程序设置一个特殊的AppEngine环境变量。
如果你有兴趣在其他环境变量,这里是列表
INSTANCE_ID 7ae067a39bdd37e8ab1cf40c711a6dbca84d
wsgi.url_scheme http
wsgi.multiprocess True
wsgi.version (1, 0)
HTTP_USER_AGENT Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36
REMOTE_ADDR 127.0.0.1
HTTP_X_APPENGINE_COUNTRY ZZ
SERVER_PROTOCOL HTTP/1.1
QUERY_STRING
wsgi.run_once False
DATACENTER us1
REQUEST_METHOD GET
SERVER_SOFTWARE Development/2.0
HTTPS off
wsgi.multithread True
SCRIPT_NAME
HTTP_ACCEPT */*
APPLICATION_ID dev~teledap-gae
SERVER_NAME localhost
USER_EMAIL
REQUEST_LOG_ID 5e2e9ae098c4612cfdb1feebacea8dc5cb7e9e989355edfffcb4a30dbca2ecffa69b
wsgi.errors <google.appengine.api.logservice.logservice._LogsStreamBuffer object at 0x7fd47f9308d0>
PATH_INFO/
DEFAULT_VERSION_HOSTNAME localhost:8080
USER_NICKNAME
APPENGINE_RUNTIME python27
CURRENT_VERSION_ID 1.790710791652471334
USER_ID
USER_ORGANIZATION
HTTP_CONTENT_LENGTH 0
HTTP_ACCEPT_LANGUAGE en-US,en;q=0.8,nl;q=0.6,es;q=0.4
HTTP_HOST localhost:8080
CURRENT_MODULE_ID default
TZ UTC
HTTP_COOKIE _ga=GA1.1.2122305447.1428161397; connect.sid=s%3AWErSIaaWXlGMkYqcwwBrikSFU1Xy4EGS.xOv8DCRhhTx2xaKiK4wRJsQh3ol9pG3njPxPexQiRdA
HTTP_CACHE_CONTROL no-cache
AUTH_DOMAIN gmail.com
USER_IS_ADMIN 0
wsgi.input <cStringIO.StringI object at 0x7fd47f92c0b8>
REQUEST_ID_HASH 9B7C4FEB
SERVER_PORT 8080
有些依赖的地方或者它们是如何运行的,例如HTTP_USER_AGENT或REQUEST_METHOD可能会有所不同。
You may also define your own environmental variables如果您愿意使用那些:
您可以定义在app.yaml中的变量,使它们提供给 程序的os.environ字典:
env_variables: DJANGO_SETTINGS_MODULE: 'myapp.settings'
你也可以检查您正在运行的版本和/或模块。 –