ソースディレクトリにある間にモジュールfoo
をインポートしようとすると、かなり混乱するImportError
というメッセージが表示されます:ImportError: No module named foo
。ソースディレクトリからインポートするとPython 'ImportError'をキャッチします
このケースを簡単にキャッチして、より有益なメッセージを返すにはどうすればよいですか? 'ソースディレクトリからモジュールfooをロードしないでください'?だから私は(foo
という名前のモジュールが全くインストールされていないため、例えば)ImportError
ために異なる原因を区別したい
try:
from _foo import *
except ImportError:
## check whether in the source directory...
、およびケースを検出:__init__.py
を持つ
、私が開始しますここではsetup.py
がカレントディレクトリにあります。これを行うためのエレガントな方法は何でしょうか?
クイックアンサーに感謝します。むしろ、現在のディレクトリにある 'setup.py'によって' ImportError'が呼び出され、それが他のケースと区別されるかどうかをチェックする方法を探しています。 – Julian
私が言及した2番目のオプションを使用してください。どのパッケージをインポートしようとしているのか知っている(最後の手段として、 'ImportError'メッセージから展開する)、現在のディレクトリ名を得ることができます。あなたが探している条件は、同じであるパッケージとディレクトリ名に対応していますか? – isedev