【发布时间】:2013-02-13 15:02:58
【问题描述】:
我们为工作中的各种代码保留了一个 python 库。这是共享代码、只实现一次、保持一致等的好方法。它的一部分依赖于外部库,并且对此有几个解决方案,但没有一个感觉是正确的。
一种解决方案是将整个外部库包含在我们的库中。论点是外部库的版本是可以控制的,但这增加了一堆代码,丑陋,感觉不像python。
另一个解决方案是try import,如果导入失败,则会出现打印错误。这感觉很好,是 pep8,但是我们的库有各种各样的模块,你经常需要其中的一部分,而不是另一部分。使用此解决方案,您会在不影响您的情况下看到错误。有投诉。
try:
import zmq
import simplejson
except:
print "Install zmq and simplejson to use the LiveFeedSubscription()."
我建议把try imports放到__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 最佳实践是什么?
【问题讨论】:
标签: python