2016-11-12 8 views
0

В отладчике я хотел бы проверить, соответствует ли исходный путь запущенному коду. Один из способов сделать это в Python 3 - это посмотреть на файл с байтовым модулем (.pyc или .pyo), который имеет поле для размера источника по модулю 2**32.Данный кадр или объект кода, как я могу загрузить связанный файл модуля

Итак, теперь задан вопрос о кадре, как найти связанный с ним путь к байтовому модулю. (Снова a .pyc или .pyo файл).

print(inspect.getfile(inspect.currentframe())) 

получит мне имя исходного файла, который я могу попытаться преобразовать имя модуля байт-кода, но лучше было бы, если бы существовал более надежный способ, так как очевидно, Python должен был прочитать модуль в первую очередь ,

Что является самым надежным способом?

ответ

2

Посмотрите на глобалы (это атрибут f_globals); он имеет огромное количество информации:

  • __name__ - имя модуля
  • __file__ - модуль файл
  • __cached__ - в .pyc байткоде кэш файл
+0

Примечание. похоже, что у основных программ нет '__cached__' в' f_globals'. – rocky

+0

@rocky no, Python никогда не создает кеш-файл байт-кода для запуска скрипта. –

 Смежные вопросы

  • Нет связанных вопросов^_^