繁体   English   中英

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

[英]How do I find out whether a Python module is run on GAE?

我有一个使用 lxml 的模块。 由于这不能在 GAE 上导入,我想默认使用合适的替代品。 类似于以下内容:

if not ON_GAE:
    import lxml
else:
    import beautifulsoup

如何确定我在 GAE 上? 是否有某种操作系统变量?

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

你可以使用这个:

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

然后是这样的:

if on_app_engine:
  import lxml
else:
  import bla

您可以简单地尝试查看导入是否引发异常,并仅在必要时使用另一个导入。

try:
    import lxml
except ImportError:
    import beautifulsoup

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM