我需要一些导入和语句才能从gdata中获取一些加密模块以加载到我的GAE Python SDK中:
from google.appengine.tools.dev_appserver import HardenedModulesHook
HardenedModulesHook._WHITE_LIST_C_MODULES += ['_counter']
但是这个导入在GAE上部署时不起作用(也不需要),只在本地。
如何测试代码是在GAE还是本地运行,以便我可以有条件地执行此导入或其他本地特定的内容?
答案 0 :(得分:2)
我在我的一些宠物项目中使用它。不记得我在哪里得到它。
import os
if 'SERVER_SOFTWARE' in os.environ and os.environ['SERVER_SOFTWARE'].startswith('Dev'):
答案 1 :(得分:2)
如果导入实际上不起作用,因为它会抛出ImportError
,那么您最好选择它来尝试/除错误。
try:
from google.appengine.tools.dev_appserver import HardenedModulesHook
HardenedModulesHook._WHITE_LIST_C_MODULES += ['_counter']
except ImportError:
HardenedModulesHook = None
你可以在except块中pass
,但这样做可以让你检查HardenedModulesHook
引用并执行一些应用程序逻辑。
答案 2 :(得分:0)
你说导入在GAE上部署时不起作用,那为什么不简单地做这样的事情呢?
try:
from google.appengine.tools.dev_appserver import HardenedModulesHook
HardenedModulesHook._WHITE_LIST_C_MODULES += ['_counter']