我们为工作中的各种代码保留了一个 python 库。这是共享代码、只实现一次、保持一致等的好方法。它的一部分依赖于外部库,并且对此有几个解决方案,但没有一个感觉是正确的。
一种解决方案是将整个外部库包含在我们的库中。争论的是外部库的版本是可以控制的,但是这增加了一堆代码,很丑,而且没有pythonic的感觉。
如果导入失败,另一种解决方案是try import
出现打印错误。这感觉很好,是 pep8,但是我们的库有各种各样的模块,你经常需要其中的一部分,而不是另一部分。使用此解决方案,您会在不影响您的情况下看到错误。有投诉。
try:
import zmq
import simplejson
except:
print "Install zmq and simplejson to use the LiveFeedSubscription()."
我建议放入try imports
Class __init__
(解决上述问题),但不是 pep8;并且可以说更难判断依赖项是什么,因为它们没有在模块顶部导入。
def __init__(self, msg_type='', msg_types=[], debug=False):
try:
import zmq
import simplejson
except:
print "Install zmq and simplejson to use the LiveFeedSubscription()."
在具有如此不同模块的库中包含外部库的python最佳实践是什么?