以下情况:我编写了一个提供某些功能的模块。在此过程中,它可以调用一些命令并解析它们的输出。现在,我通过使其能够解析 XML 输出来扩展该模块。当然,从那时起,该模块就依赖于 lxml
。我没有考虑太多,因为 lxml
并不是什么大问题。
直到我——只是偶然——碰巧在 Raspbian 安装上使用了我的 python 模块。由于此安装相当新,我尝试使用 pip
安装 lxml
。在该平台上无法编译。 (我猜是因为 500 MB 内存不足以在这样的平台上构建 lxml
。)
现在我想知道:当且仅当已安装 lxml
时,我的模块是否可以以提供处理 XML 数据的方法的方式实现?此功能不是必需的并且很少使用。为模块提供基本功能但如果其他模块也可用则获得更多功能的最佳 pythonic 方法是什么?我的想法是对特定模块是否存在以及是否无法引发异常进行某种测试。如何在 python 中以良好的方式实现这一点?我正在使用 Linux 上提供的默认实现。在其他 python 解释器/编译器平台上使用此 python 源代码是否可以以不中断的方式实现该功能?
最佳答案
尝试导入。根据成功设置标志。
try:
import foo
fooavailable = True
except ImportError:
fooavailable = False
关于python - 如果安装了特定模块,如何在 python 中提供某些功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46989359/