以下情况:我编写了一个提供某些功能的模块。这样做它可以调用一些命令并解析它们的输出。在某些时候,我现在通过启用它来解析XML输出来扩展该模块。当然,从那时起,这个模块现在依赖于lxml
。我没有给出那么多的想法,因为lxml
并不是什么大问题。
直到我 - 只是偶然 - 碰巧在Raspbian安装上使用我的python模块。由于此安装非常新,我尝试使用lxml
安装pip
。哪个无法在该平台上编译。 (我想因为500 MB内存不足以在这样的平台上构建lxml
。)
现在我想知道:我的模块是否可以通过以下方式实现:当且仅当已安装lxml
时,它才提供处理XML数据的方法?此功能不是必需的,很少使用。什么是最好的pythonic方法,为模块提供基本功能,但如果有其他模块可用,还可以获得更多功能?我的想法是对特定模块的存在执行某种测试,如果没有引发异常。怎么能以一种好的方式在python中实现呢?我正在使用Linux上提供的默认实现。是否可以通过在其他python解释器/编译器平台上使用此python源代码来破解该功能?
答案 0 :(得分:2)
尝试导入。根据成功设置标志。
try:
import foo
fooavailable = True
except ImportError:
fooavailable = False