как избежать перезагрузки пакета при повторном запуске отладчика - PullRequest
0 голосов
/ 27 октября 2018

Поскольку я импортировал много пакетов, каждый раз, когда я запускаю свой сценарий в режиме отладки, мне требуется около минуты, чтобы перейти к первой строке кода.

Я бегу в режиме отладки много раз в день, поэтому я трачу немало времени на ожидание.

Есть ли способ ускорить его?

1 Ответ

0 голосов
/ 27 октября 2018

Один из способов ускорить цикл разработки - сохранить процесс Python, чтобы вы нужно загрузить пакеты только один раз.

Вместо , запускающего скрипт , упаковывает сам скрипт как модуль . Откройте сеанс интерактивного Python (или, возможно, IPython ), импортируйте свой модуль, затем "запустить скрипт", вызвав его основную функцию.

Если вы внесете изменения в скрипт, вам нужно будет только перезагрузить модуль. Поскольку другие модули уже загружены, это должно быть относительно быстрый. Поскольку Модули Python кэшируются , импорт одного и того же модуля во второй раз происходит практически мгновенно.

В Python перезагрузка может быть выполнена таким образом . Или вы можете настроить IPython на автоматическую перезагрузку модулей или пакетов, когда они изменяют таким образом . В IPython также есть несколько приятных функций отладки, таких как % pdb , которые переводят вас в отладчик всякий раз, когда возникает необработанное исключение.


Итак, вместо вашего script.py выглядит так:

import xyz

statement1
statement2
statement3

Вы бы изменили его так, чтобы оно выглядело как

import xyz

def main():
    statement1
    statement2
    statement3

# This allows you to still run your module as a script:
if __name__ == '__main__':
    main()   

Затем в интерактивном сеансе Python вы наберете

>>> import script   
>>> script.main()

для запуска скрипта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...