Как сделать так, чтобы VSCode автоматически перезагружал внешние * .py модули? - PullRequest
2 голосов
/ 09 мая 2019

Я работаю над кодом Python в Visual Studio Code и использую несколько файлов для функций, которые я импортирую в начале скрипта.Скажем, например, у меня есть файл «doStuff.py» в той же папке, что и мой основной сценарий, с содержимым

def doStuff():
    print('I am doing stuff!')
    # print('lots of stuff.')

, который я затем импортировал бы в другой сценарий, например, «main.py», написав

from doStuff import doStuff
doStuff()

Если я сейчас запусту скрипт и затем, например, раскомментирую вторую строку функции в doStuff.py, я ожидаю увидеть новое поведение моего метода doStuff ().К сожалению, этого не происходит.Я недавно переключился с Spyder на VSCode, и в Spyder это всегда работало автоматически, но, похоже, VSCode не загружает автоматически импортированные модули.

Некоторая информация о моем текущем рабочем процессе: КомуОткройте среду программирования, я использую «Файл / Открыть папку» и выбираю папку, в которой находятся main.py и doStuff.py.Затем я использую «Запустить текущий файл в интерактивном окне Python», чтобы запустить мои сценарии.Я предполагаю, что есть лучшие способы, и это может иметь какое-то отношение к файлу launch.json, но пока единственный способ заставить его использовать измененный внешний символ - перезапуск VSCode.

Редактировать: Проблема здесь: Код Visual Studio: автообновление изменений файла отличается, если я правильно понимаю, поскольку речь идет о внешне измененных файлах вбыть в курсе VS-кода.Моя проблема связана с перезагрузкой модулей Python в интерактивном окне.

Редактировать 2: Screenshot, so you believe me.

1 Ответ

1 голос
/ 17 мая 2019

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

Несмотря на это, я, честно говоря, немного обеспокоен тем, что Spyder будет выполнять автоматическую перезагрузку, поскольку у него так много связанных с этим проблем, связанных с ним (как реализатор импорта в Python, я знаю из первых рук)то, что перезагрузка модуля работает только в некоторых случаях, а тот, который вы предлагаете выше, попадает в категорию не получения того, что вы ожидаете, из-за вашего звонка from doStuff import doStuff надежным способом без каких-либо волшебных взломов, на которые я не хотел бы полагатьсяработает).

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