Импорт трассировки Python

Моя библиотека Python только что изменила это основное имя модуля с foo.bar на foobar . Для обратной совместимости foo.bar все еще существует, но при импорте возникает несколько предупреждений. Теперь кажется, что пример программы по-прежнему импортируется из старого модуля, но не напрямую.

Я бы хотел найти ошибочный оператор import . Есть ли какой-либо инструмент, который позволяет мне отслеживать импорт и находить виновника без прошивки через весь код?

2 Solutions collect form web for “Импорт трассировки Python”

Запустите интерпретатор python с помощью -v :

 $ python -v -m /usr/lib/python2.6/timeit.py # installing zipimport hook import zipimport # builtin # installed zipimport hook # /usr/lib/python2.6/site.pyc matches /usr/lib/python2.6/site.py import site # precompiled from /usr/lib/python2.6/site.pyc # /usr/lib/python2.6/os.pyc matches /usr/lib/python2.6/os.py import os # precompiled from /usr/lib/python2.6/os.pyc import errno # builtin import posix # builtin # /usr/lib/python2.6/posixpath.pyc matches /usr/lib/python2.6/posixpath.py import posixpath # precompiled from /usr/lib/python2.6/posixpath.pyc # /usr/lib/python2.6/stat.pyc matches /usr/lib/python2.6/stat.py import stat # precompiled from /usr/lib/python2.6/stat.pyc # /usr/lib/python2.6/genericpath.pyc matches /usr/lib/python2.6/genericpath.py import genericpath # precompiled from /usr/lib/python2.6/genericpath.pyc # /usr/lib/python2.6/warnings.pyc matches /usr/lib/python2.6/warnings.py import warnings # precompiled from /usr/lib/python2.6/warnings.pyc # /usr/lib/python2.6/linecache.pyc matches /usr/lib/python2.6/linecache.py import linecache # precompiled from /usr/lib/python2.6/linecache.pyc # /usr/lib/python2.6/types.pyc matches /usr/lib/python2.6/types.py import types # precompiled from /usr/lib/python2.6/types.pyc # /usr/lib/python2.6/UserDict.pyc matches /usr/lib/python2.6/UserDict.py ... 

Затем просто grep для вашего старого модуля.

отредактируйте модуль foo.bar, добавьте следующий код:

 import pdb pdb.set_trace() 

когда импортируется foo.bar, программа останавливается на pdb.set_trace () в режиме pdb, где вы можете отлаживать свой код. Например, вы можете использовать команду «w» для печати полного стека вызовов.

Interesting Posts

Сделайте запрос http POST для загрузки файла с помощью python urllib / urllib2

Создание метода private в подклассе python

Вычисление разницы во времени между событиями в пандах

индекс и столбец для максимального значения в кадре данных панд

Как я могу отлаживать ошибку инициализации py2exe «неправильно»?

Выбор строк в мультииндексированном фрейме

Django Rest Framework (DRF) Как установить класс разбиения на страницы в зависимости от query_params?

Имитация запроса ajax с помощью python с использованием запросов lib

Уменьшение количества памяти в памяти при длительном применении

Как найти лучшее совпадение с нечеткой строкой?

Загрузка локального файла с клиента на распределенный кластер dask

Проводка динамических значений в саранче

Отфильтровать HTML-теги и разрешать объекты в python

Запуск сценария python изнутри виртуального bin не работает

Счетчик коллекций Python для списка словарей

Python - лучший язык программирования в мире.