Django получить путь к модулю в shell

Я работаю над очень большим проектом, который состоит из множества модулей, вот в чем трудность, иногда я добавляю print в определенную строку определенного файла, в целях тестирования. после сборки, я запускаю файл из shell, и там есть строка, которая появляется из ниоткуда в моей командной строке (ну, не совсем ниоткуда, я забыл, где я добавил print), мне нужен более сильный вывод, как:

print('test')
# test flags/urls.py 348

поэтому я строю функцию put,

from inspect import currentframe


def put(value):
    frameinfo = currentframe()
    location = 'path to this module'
    print(f'{value} {location} {frameinfo.f_back.f_lineno}')


put({'name': 'jason'})
# {'name': 'jason'} path to this module 9

когда я попытался разработать путь, произошло нечто неожиданное.

flags/test.py

print(__file__)
# /Applications/MAMP/htdocs/canvas/src/zzd/env/lib/python3.7/site-packages/django/core/management/commands/shell.py

оболочка

(env) 🌹 python manage.py shell < '/Applications/MAMP/htdocs/canvas/src/zzd/zzd/flags/tests.py'
/Applications/MAMP/htdocs/canvas/src/zzd/env/lib/python3.7/site-packages/django/core/management/commands/shell.py

оказывается, что он всегда возвращает путь shell.py, вместо пути к файлу моего модуля. Интересно, почему так происходит, буду очень благодарен за помощь.

Вернуться на верх