- текстовый редактор (если уж на то пошло, VS Code, но исключительно как текстовый редактор); и
- отдельный терминал zsh (в настоящее время на macOS Tahoe с процессором Intel).
Код: Выделить всё
import dummy
print(dummy.dummy_fct())
Код: Выделить всё
run not_in_the_library.py # -> works fine
# ... manual edit & save of the library files ...
run not_in_the_library.py. # -> shows the new behavior
Код: Выделить всё
run not_in_the_library.py # -> works fine
# ... manual edit & save of the library files ...
run not_in_the_library.py. # -> shows **the old behavior !**
- мои библиотеки действительно установлены как редактируемые. Используя Inspect.getsource(), я могу сразу увидеть свои изменения.
- Выполнение %reset не помогает. Он все очищает и принудительно импортирует библиотеку, но изменения в коде не отражаются.
- Выполнение importlib.reload() не дает никакого эффекта (т. е. библиотека перезагружается, но не включает последние изменения).
- Переустановка conda не помогла. Я наблюдаю одно и то же поведение на двух разных ноутбуках MacOS под управлением Tahoe и Monterey.
- Я наблюдаю такое поведение при запуске Python 3.14 с последними версиями инструментов настройки, а также в более старой среде с Python 3.11, pip 23.1.2, setuptools 68.0.0
Что именно может привести к тому, что я увижу «призрачные» пакеты в редактируемом режиме?
Для всех, кто ищет MWE, я разместил здесь фиктивную, пустую библиотеку: https://github.com/fpavogt/dummy
Это можно использовать для воспроизведения описанных выше шагов.
Изменить: следуя ответам на этот аналогичный SO вопрос, использование следующей магии работает, но только для первого повтора:
Код: Выделить всё
%load_ext autoreload
%autoreload 2
run not_in_the_library.py # -> shows the behavior #1
# ... manual edit & save of the library files ...
run not_in_the_library.py # -> shows the behavior #2
# ... manual edit & save of the library files ...
run not_in_the_library.py # -> still shows the behavior #2 !
Подробнее здесь: https://stackoverflow.com/questions/798 ... to-be-seen
Мобильная версия