У меня есть специальный регистратор с приведенной ниже структурой. Он использует dictConfig для чтения файла default.json для регистратора. Он работает нормально, но когда я захотел вложить его в корень проекта, при его импорте возникла ошибка. Есть ли причина, почему это может произойти? Я дважды проверил путь и убедился, что он правильный.
Исходная структура
tealogger/
- configuration/
- default.json
- __init__.py
- formatter.py
- ...
Вложенная структура
projectroot/
- tealogger/
- configuration/
- default.json
- __init__.py
- formatter.py
- ...
Ошибка
Traceback (most recent call last):
File "/opt/python/substance3d_scene_automation_110_m_1089/lib/python3.11/logging/config.py", line 400, in resolve
found = getattr(found, frag)
^^^^^^^^^^^^^^^^^^^^
AttributeError: cannot access submodule 'tealogg' of module 'projectroot' (most likely due to a circular import)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/python/substance3d_scene_automation_110_m_1089/lib/python3.11/logging/config.py", line 552, in configure
formatters[name] = self.configure_formatter(
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/python/substance3d_scene_automation_110_m_1089/lib/python3.11/logging/config.py", line 664, in configure_formatter
result = self.configure_custom(config)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/python/substance3d_scene_automation_110_m_1089/lib/python3.11/logging/config.py", line 479, in configure_custom
c = self.resolve(c)
^^^^^^^^^^^^^^^
File "/opt/python/substance3d_scene_automation_110_m_1089/lib/python3.11/logging/config.py", line 403, in resolve
found = getattr(found, frag)
^^^^^^^^^^^^^^^^^^^^
AttributeError: cannot access submodule 'tealogg' of module 'projectroot' (most likely due to a circular import)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "", line 1, in
File "/Users/yk/Desktop/Project/Repository/Adobe/3DIQE/projectroot/projectroot/tealogger/__init__.py", line 128, in
tealogger = TeaLogger(
^^^^^^^
File "/Users/yk/Desktop/Project/Repository/Adobe/3DIQE/projectroot/projectroot/tealogger/__init__.py", line 100, in __new__
logging.config.dictConfig(DEFAULT_CONFIGURATION)
File "/opt/python/substance3d_scene_automation_110_m_1089/lib/python3.11/logging/config.py", line 823, in dictConfig
dictConfigClass(config).configure()
File "/opt/python/substance3d_scene_automation_110_m_1089/lib/python3.11/logging/config.py", line 555, in configure
raise ValueError('Unable to configure '
ValueError: Unable to configure formatter 'color'
Подробнее здесь: https://stackoverflow.com/questions/789 ... on-logging