как заставить vscode обнаруживать / автоматически перезагружать модули после их редактирования? - PullRequest
1 голос
/ 25 мая 2020
• 1000

Проблема в том, что когда я вношу изменения в функцию в другом модуле, т.е. module1.py, VSCode не обнаруживает изменения, когда я вызываю функцию в main.py после обновления, это все еще более старая версия.

Я могу обойти это, выполнив что-то вроде:

from importlib import reload
reload module1

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

Простое повторное выполнение импорта в верхней части моего main.py на самом деле ничего не делает, я могу сделать это, только если убью оболочку и снова открою ее с самого начала, что не идеально, если я буду постепенно

Я прочитал несколько вопросов, которые можно было бы включить:

"files.useExperimentalFileWatcher" : true

в свой settings.json, но это не похоже на известный параметр конфигурации в мой v ersion, 1.45.1.

Это то, что Spyder обрабатывает по умолчанию и упрощает пошаговое кодирование при вызове функций и классов из нескольких модулей в разрабатываемом вами пакете.

Как я могу добиться этого в VSCode? Для ясности: я не хочу использовать команду I Python autoreload magi c.

Очень признателен

К вашему сведению, вот другие вопросы, которые я видел, но не получил рабочее решение, среди прочего, с аналогичными вопросами / ответами:

link1 link2

1 Ответ

2 голосов
/ 26 мая 2020

В VS Code это не поддерживается, так как механизм перезагрузки Python недостаточно надежен для использования вне REPL, и даже в этом случае вы должны быть осторожны. Это не идеальное решение и может привести к ложному устаревшему коду, который может легко сбить вас с толку (и я знаю это, потому что я написал importlib.reload() ?).

...