如果安装了特定的模块,如何在python中提供某些功能?

时间:2017-10-28 11:46:37

标签: python module lxml

以下情况:我编写了一个提供某些功能的模块。这样做它可以调用一些命令并解析它们的输出。在某些时候,我现在通过启用它来解析XML输出来扩展该模块。当然,从那时起,这个模块现在依赖于lxml。我没有给出那么多的想法,因为lxml并不是什么大问题。

直到我 - 只是偶然 - 碰巧在Raspbian安装上使用我的python模块。由于此安装非常新,我尝试使用lxml安装pip。哪个无法在该平台上编译。 (我想因为500 MB内存不足以在这样的平台上构建lxml。)

现在我想知道:我的模块是否可以通过以下方式实现:当且仅当已安装lxml时,它才提供处理XML数据的方法?此功能不是必需的,很少使用。什么是最好的pythonic方法,为模块提供基本功能,但如果有其他模块可用,还可以获得更多功能?我的想法是对特定模块的存在执行某种测试,如果没有引发异常。怎么能以一种好的方式在python中实现呢?我正在使用Linux上提供的默认实现。是否可以通过在其他python解释器/编译器平台上使用此python源代码来破解该功能?

1 个答案:

答案 0 :(得分:2)

尝试导入。根据成功设置标志。

try:
  import foo
  fooavailable = True
except ImportError:
  fooavailable = False