Colab: Импортировать обновленную версию Python файла, записанного на диск - PullRequest
0 голосов
/ 17 июня 2020

У меня есть ячейка, которая записывает класс в файл

%%writefile example_class.py

class Example(object):
    def __init__(self):
        ...implementation...

Теперь я могу импортировать этот класс в другую ячейку следующим образом:

from .example_class import Example
example = Example()
...using example...

Все работает нормально, поэтому далеко. Однако, когда я потом сделаю следующее:

  1. Обновить класс примера (первая ячейка) и выполнить ячейку (перезаписать)
  2. Выполнить вторую ячейку, которая загружает класс примера

Изменения, сделанные в 1. не активны, когда я выполняю вторую ячейку. Вторая ячейка по-прежнему использует первую версию класса Example (без обновлений). Есть ли способ обеспечить, чтобы вторая ячейка импортировала самую последнюю версию класса Example?

Один из способов заставить все работать - перезапустить среду, но я бы хотел избежать этого, потому что это очень много времени (у меня есть много ячеек, которые нужно выполнить до этого).

Кроме того, мне действительно нужно записать источник python в первую ячейку на диск. Поэтому просто иметь обычную ячейку без %%writefile example_class.py для меня не вариант.

1 Ответ

0 голосов
/ 17 июня 2020

Я нашел решение в:

Определить, если модуль python изменяется, а затем перезагрузить

Решение состоит в том, чтобы выполнить следующую ячейку в начале:

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