我有一个使用lxml的模块。由于这不能在GAE上导入,我想默认使用合适的替代品。有点像:
if not ON_GAE:
import lxml
else:
import beautifulsoup
我怎样才能确定我在使用GAE?是否存在某种OS变量?
更新:某些模块无法在GAE上运行(如sockets
)。我不想拥有多个try
... except ImportError
块,而是想从一开始就知道哪些代码块需要另一种实现。
答案 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