У меня есть около 15 различных сценариев Python для разработки приложений, среди которых 10 включают ведение журнала для целей отладки.Теперь есть основной сценарий «hutextract.py», который должен запускаться с именем файла в качестве аргумента.Ранее имя файла журнала было исправлено «test.log».Теперь я хочу создать файл журнала с тем же именем, что и имя входного файла (кроме расширения).Мой код "hutextract.py", где "randpage" и "мандат" - это другие скрипты на python:
from randpage import genrand
from mandatebase import formext
...# importing other scripts, functions
import logging
file_name=sys.argv[1]
def return_log_name():
return ".".join(file_name.split("/")[-1].split(".")[:-1]) + ".log"
log_file_name = return_log_name()
logging.basicConfig(filename=log_file_name, level=logging.DEBUG, format="%(asctime)s:%(levelname)s:%(message)s")
В randpage.py, mandbase.py и других скриптах логирование также включено туда:
import logging
from hutextract import return_log_name
log_file_name = return_log_name()
logging.basicConfig(filename=log_file_name, level=logging.DEBUG, format="%(asctime)s:%(levelname)s:%(message)s")
Это создает ошибку, которая становится очевидной, когда мы пытаемся запустить hutextract.py с аргументом, который вызывает другие сценарии (и их функции), которые в свою очередь снова вызывают функцию return_log_name из hutextract.py для целей регистрации:
Traceback (most recent call last):
File "hutextract.py", line 3, in <module>
from randpage import genrand
File "/home/src/randpage.py", line 3, in <module>
from mandate_final import sigext
File "/home/src/mandate_final.py", line 5, in <module>
from hutextract import return_log_name
File "/home/src/hutextract.py", line 3, in <module>
from randpage import genrand
ImportError: cannot import name 'genrand'
Как выполнить ведение журнала во всех сценариях модуля, чтобы сохранить файл журнала с тем же именем, что и имя входного файла, заданного в качестве аргумента?