ipython параллельный push пользовательский объект
Я не могу отправить объект для непосредственного просмотра работникам. Вот что я хочу сделать:
Класс теста: def __init__(self): self.id = 'ddfdf' из IPython.parallel Импорт Клиента rc = Client() dv = rc[:] t = Test() DV ['T'] = T печать DV ['T'] NameError: имя 't' не определено
Это будет работать, если я попытаюсь выдвинуть объект панды или какой-либо из встроенных объектов. Как это сделать с помощью пользовательского объекта?
Я старался:
dv ['Test'] = Тест DV ['T'] = T печать DV ['T'] UnpicklingError: Аргумент класса NEWOBJ не является типом объекта
1 ответ
Решение
Для интерактивно определенных классов (в __main__
), вам нужно подтолкнуть определение класса или использовать укроп. Но даже это, похоже, не работает для классов старого стиля, что является ошибкой в обработке IPython классов старого стиля [1]. Этот код отлично работает, если вы используете класс нового стиля:
class Test(object):
...
а не на уроке старого стиля. Обратите внимание, что классы старого стиля недоступны в Python 3. Как правило, всегда рекомендуется всегда использовать классы нового стиля.