Я искал ее в Интернете, но пока не нашел ответа.
У меня есть одна библиотека, которая импортируется в каждый второй файл.
допустим, библиотека импортирована как import my_lib
в файлы, которые ее используют.
в mylib я бы хотел сделайте что-то вроде __imported_from__, чтобы код знал, откуда происходит импорт. Мне это нужно для ведения журнала (по-разному называют другой файл журнала/имя журнала)
Это будет журнал на данный момент:
2018-09-13 01:36:00,921 - my_lib - INFO - Start Processing
2018-09-13 01:36:30,921 - my_lib - INFO - Done Processing
2018-09-13 01:37:00,921 - my_lib - INFO - Start Processing
2018-09-13 01:37:30,921 - my_lib - INFO - Done Processing
Я хочу, чтобы my_lib содержала имя из импортированного файла, чтобы можно было просмотреть, откуда поступает вызов, в моем журнале. Как в примере ниже
2018-09-13 01:36:00,921 - import_from_file_1 - INFO - Start Processing
2018-09-13 01:36:30,921 - import_from_file_1 - INFO - Done Processing
2018-09-13 01:37:00,921 - import_from_file_2 - INFO - Start Processing
2018-09-13 01:37:30,921 - import_from_file_2 - INFO - Done Processing
На основе ответа я написал две строки, которые предоставляют мне нужные данные:
import inspect
from os.path import basename, splitext
imported_from_file = (inspect.stack()[1][1]) if __name__ != '__main__' else False
used_from = splitext(basename(imported_from_file))[0] if imported_from_file else __name__
Подробнее здесь: https://stackoverflow.com/questions/523 ... the-import