私は2つのpythonスクリプトを持っています。Python - 一度だけのインポートモジュール
satellite_utils.py
apply_errata.py
私が実行するスクリプトは次のとおりです。
python3.4 apply_errata.py
satellite_utils.py
で定義された関数を呼び出しますapply_errata.py
。
今、メッセージlogging
を使用してメッセージを記録しています。私はこれをすべてのスクリプトで宣言するのではなく、一度だけインポートします。
私はapply_errata.py
でlogging
を定義し、参照がsatellite_utils.py
でそれになされている場合は、私が手:
Traceback (most recent call last):
File "apply_errata.py", line 20, in <module>
satellite_utils.applyErrata(args.release, args.all, args.rollback)
File "/root/config-3.1.21/automated-os-patching/satellite_utils.py", line 34, in applyErrata
applyErrataOnSystem(system, release, automaticRollback, [erratum])
File "/root/config-3.1.21/automated-os-patching/satellite_utils.py", line 39, in applyErrataOnSystem
logging.warning('is when this event was logged.')
NameError: name 'logging' is not defined
私はeveryfileにimport文を避けることができます任意の方法を?
すべてのファイルにインポートしてみませんか? – bereal
モジュールを使用する場合は、モジュールをインポートする必要があります。モジュールをインポートしても、複数回読み込まれているわけではありません。それは単にコード内で参照していることを意味します。 – MrE
'logging'を必要とするすべてのモジュールは' import logging'を行うべきです。 – user2357112