Python モジュールの大きなライブラリがあります。モジュールをインポートするときに、予期しないモジュールがインポートされていることに気付くことがあります。このために、python -v
どのモジュールがインポートされているかを確認するために を使用しています。マンページから:
-v Print a message each time a module is initialized, showing the place
(filename or built-in module) from which it is loaded. When given twice,
print a message for each file that is checked for when searching for a
module. Also provides information on module cleanup at exit.
まあ、これは真実ではありません。例えば:
import portalmq # directory /home/blahblah/python_modules/portalmq
# /home/blahblah/python_modules/portalmq/__init__.pyc matches /home/blahblah/python_modules/portalmq/__init__.py
import portalmq # precompiled from /home/blahblah/python_modules/portalmq/__init__.pyc
ご覧のとおり、-v
フラグはどのモジュールがインポートされたかについての情報を提供するだけで、どのインポートステートメント、どのファイル/行がインポートをトリガーしているかについての情報は提供しません。を使用-vv
しても何も変わりません (試行されたモジュールのリストが表示されますが、最初にインポートが試行された理由については何もありません)。
しかし、私はそれを正確に知る必要があります:どのインポートステートメントで、どのファイル/行がそれらのインポートをトリガーしているか. どうすればこの情報を入手できますか?