我正在 python 中创建一个包,它有一些可选的依赖项。核心功能不需要这些依赖项,但缺少它们会禁用某些类(它是一个提供用于存储 html 的字段的 orm。lxml 用于存储和检索值)。
显然,如果无法导入依赖项,我可能只是不创建类。但这可能会让用户感到困惑,因为他得到“模块 x 没有属性 y”,这不是真正的问题。
如果有人想要导入或使用一个类,有什么方法可以发出有意义的错误消息(我也在考虑创建一个__getattribute__
引发错误的类)。有什么推荐的方法吗?一些有趣的方式是在一些高质量的包装中完成的?