如何确定是否在GAE上运行Python模块?

时间:2011-07-09 07:44:41

标签: python google-app-engine

我有一个使用lxml的模块。由于这不能在GAE上导入,我想默认使用合适的替代品。有点像:

if not ON_GAE:
    import lxml
else:
    import beautifulsoup

我怎样才能确定我在使用GAE?是否存在某种OS变量?

更新:某些模块无法在GAE上运行(如sockets)。我不想拥有多个try ... except ImportError块,而是想从一开始就知道哪些代码块需要另一种实现。

2 个答案:

答案 0 :(得分:4)

您可以使用:

on_app_engine = os.environ.get('SERVER_SOFTWARE', '').startswith('Google')

然后像:

if on_app_engine:
  import lxml
else:
  import bla

答案 1 :(得分:2)

您只需尝试查看导入是否抛出异常,并仅在必要时使用其他导入。

try:
    import lxml
except ImportError:
    import beautifulsoup