我的应用程序使用了AppEngine标准环境提供的python库。 为了将库包含在我的本地开发中,我按照https://cloud.google.com/appengine/docs/python/tools/using-libraries-python-27上的说明进行操作。
# appengine_config.py
from google.appengine.ext import vendor
# Add any libraries install in the "lib" folder.
vendor.add('lib')
我把库安装到一个文件夹' lib'并在appengine_config.py中添加了vendor.add(' lib') 我想" vendor.add(' lib')"仅在应用程序位于本地而非Google Cloud中时才有效/运行。
识别环境的正确方法是什么? appengine_config.py中的以下内容如何?
if 'localhost' in os.environ['SERVER_NAME']:
vendor.add('lib')
答案 0 :(得分:2)
如果您的应用使用了GAE提供的库,那么您没有正确地包含它(您正在销售它,这是您使用GAE提供的库不所做的事情)。来自Requesting a library:
您可以使用libraries: directive in app.yaml。
申请图书馆libraries: - name: PIL version: "1.1.7" - name: webob version: "1.1.1"
请注意:库必须是受支持的runtime-provided third-party libraries.
之一部署后,App Engine将向您提供所请求的库 运行环境。有些库必须是installed locally。
答案 1 :(得分:1)
根据official documentation,您应该查看SERVER_SOFTWARE
环境变量:
要确定您的代码是在生产环境中运行还是在本地开发服务器中运行,请检查
os.getenv('SERVER_SOFTWARE', '').startswith('Google App Engine/')
是否正确。当这是True
时,您正在投入生产;否则,您将在本地开发服务器中运行。
答案 2 :(得分:1)
与@mgilson给出的答案类似,我倾向于使用
DEBUG = os.environ.get('SERVER_SOFTWARE','').startswith('Dev')
如果DEBUG为True,那么你在本地环境中运行,否则它就会运行。