1
处理导入错误,当我使用Python进行编码时,我必须做某些第三方模块。每次使用doctest
例如,当我编写用户认证时,可以通过多种方式完成,其中之一是使用LDAP。但是,如果用户不想使用LDAP认证,他可以在配置文件中选择不同的选项,在这种情况下,他不应该安装ldap模块。
一般来说,我通过解决这个问题:
if config.foo:
import ldap_auth as auth
elif config.foo2:
import other_auth as auth
...
auth.do_stuff(...)
和我导入LDAP模块中只有模块了ldap_auth。我个人觉得这很不错,但是,当然,doctests在尝试执行ldap_auth时会引发ImportError。
现在,我知道我可以通过尝试在ldap_auth中导入ldap模块来捕获它,但这只是有点弄乱了漂亮的代码(做整个“导入ldap_auth作为auth”bussiness的整点避免导入错误)。
有什么更优雅的方式来防止使用这种“模式”时,导致错误提示ImportErrors?
干杯,
汤姆
嗯,但这不是我的问题的答案.. – 2010-04-06 12:53:58
您的问题是“有没有更优雅的方式...”。恐怕答案可能不是。 – blokeley 2010-04-06 13:46:05