знать имя файла: line_no, где был сделан импорт в my_module - PullRequest
2 голосов
/ 09 апреля 2011

У меня есть модуль my_module, который поставляется (импортируется) множеством файлов, используя:

from my_module import *

Находясь внутри модуля, могу ли я узнать, какой файл импортированmodule?
Я хотел бы знать имя файла: line_no, который сделал этот импорт.

, поэтому мне нужен следующий код:

my_module.py

print "This module is currently imported from: file:line_no = %s:%s" % what_in_here??

1 Ответ

5 голосов
/ 09 апреля 2011

Поместите это в код вашего модуля верхнего уровня:

import traceback
last_frame = traceback.extract_stack()[-2]
print 'Module imported from file:line_no = %s:%i' % last_frame[:2]

Вы также можете использовать inspect вместо traceback:

import inspect
last_frame = inspect.stack()[1]
print 'Module imported from file:line_no = %s:%i' % last_frame[1:3]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...