【发布时间】:2011-06-21 20:21:47
【问题描述】:
我有一些导入和语句需要从 gdata 获取一些加密模块以加载到我的 GAE Python SDK:
from google.appengine.tools.dev_appserver import HardenedModulesHook
HardenedModulesHook._WHITE_LIST_C_MODULES += ['_counter']
但是在 GAE 上部署时,此导入不起作用(也不需要),仅在本地。
如何测试代码是在 GAE 上运行还是在本地运行,以便有条件地执行此导入或其他本地特定的东西?
【问题讨论】:
-
我很困惑 - 为什么你想要/需要只在 dev_appserver 上执行此操作?在没有这些 C 模块的情况下,你在生产中做什么?
-
gdata.tlslite.util 加密模块在使用时使用一些 M2Crypto 模块,并选择 openssl 作为生成密钥的首选方式。在 GAE 上,openssl 不是一个选项,所以它没有尝试,它使用纯 Python 实现。在我的 SDK 上,它找到了 M2Crypto 并尝试导入它,即使我指定了密钥的 python 实现。可能有更好的方法可以从我的 GAE SDK 中排除 M2Crypto,但这是可行的。我喜欢使用 M2Crypto,这样我可以更轻松地检查我的密钥和签名等是否可移植。
标签: python google-app-engine import