作業中のさまざまなコード用の Python ライブラリを保持しています。これは、コードを共有したり、一度だけ実装したり、一貫性を維持したりするための優れた方法でした。その一部は外部ライブラリに依存しており、これにはいくつかの解決策がありましたが、どれも正しく感じられませんでした。
1 つの解決策は、外部ライブラリ全体をライブラリに含めることでした。引数は、外部ライブラリのバージョンを制御できるというものでしたが、これは大量のコードを追加し、醜く、pythonic とは感じません。
別の解決策は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 のベスト プラクティスは何ですか?