2
大きなプロジェクトで作業する場合、私はエラーの検出と処理に非常に熱心です。ユーザーがインストールしたモジュールとインストールしていないモジュールがあるので、この可能性を考慮する必要があります。不足しているモジュールを動的に検出する(Python)
私は、モジュールをインポートしようとしている間に見つからないモジュールを検出する方法を知りたいと思います。現在、私は、ImportErrorsを監視し、エラー生成モジュールの名前をリストに追加するtry/exceptブロックのセットを持っています。
現在のコード:
errors = []
try:
import socket
except ImportError:
errors.append('socket')
pass
try:
import shutil
except ImportError:
errors.append('shutil')
try:
import urllib
except ImportError:
errors.append('urllib')
pass
if len(errors) > 0:
print colors.red + '[!] ' + colors.end + 'Error: The Following Module(s) Encountered Error(s): \n'
for i in range(len(errors)):
print '\t' + errors[i]
print colors.blue + '\n[*] ' + colors.end + 'Please Install/Reinstall the Listed Modules'
quit()
この方法はうまく動作するようだが、私はあまり全体的に部屋を取るだろうな方法をしたいと思います。このマルチtry/exceptブロックメソッドを使用する主な理由は、どのモジュールがインポートに問題があるかを検出する必要があることです。
'pip'は、依存関係をインストールするの世話をすることができるように、なぜ、[適切なパッケージング](https://python-packaging-user-guide.readthedocs.org/en/latest/)を使用していませんか?そうすれば、コードの依存関係管理*の責任を引き継ぎ、エラーの処理方法を心配する必要がありません。 –