2013-07-23 2 views
2

Я использую iPython (0.13.2) чаще в последнее время, и регистрация является отличной возможностью - если я могу заставить ее работать правильно.Как возобновить сеанс iPython 0.13.2 с протоколированием

В настоящее время я могу начать и указать файл журнала либо через ipython --logfile ~/path/fake.log, либо даже в середине сеанса iPython с помощью команды% magic %logstart ~/path/fake.log.

Однако, похоже, я не могу возобновить сеанс из файла журнала, который, по-видимому, частично отменил цель. Я просмотрел Google и SO, но ни одно из рекомендуемых решений здесь, в SO или в документах, похоже, не работает правильно.

Я пробовал:

  • из Bash
    • ipython -log ~/path/fake.log (source, результат: [TerminalIPythonApp] Unrecognized flag: '-log')
    • ipython -logplay ~/path/fake.log (source и многочисленные другие, результат: [TerminalIPythonApp] Unrecognized flag: '-logplay')
    • ipython --logfile=~/path/fake.log (source, результат: новый журнал запущен, переменные из предыдущих s ession не определено)
  • из IPython
    • %logstart ~/path/fake.log append (source, результат: старый журнал продолжал, но не загружен, переменные из предыдущей сессии неопределенные)

Два, которые частично работают (в том смысле, что они пытаются импортировать файл журнала), но, похоже, они не предназначены для этой цели:

  • от bash: ipython -i ~/path/fake.log (source, результат: если не было ошибок в сеансе импорта и работ. Если были ошибки, не импортированные и переменные все еще недоступны. Ведение журнала не возобновляется.).
  • от ipython: %run ~/path/fake.log (нет источника, только что догадался и попытался) Результат: тот же, что и выше. Запускает файл, если ошибок не было, а переменными являются GTG. Если были ошибки, не работает. Не возобновляет ведение журнала.)

Есть ли способ в iPython 0.13.2 возобновить сеанс, который эффективно «начинается с того места, где вы остановились»? Спасибо за любую помощь, которую вы можете предоставить.

ответ

0

Все эти сеансы сохранения/восстановления работают, сохраняя взаимодействия как файлы py, а затем пытаясь запустить файл py во время восстановления. Если происходит ошибка, например, неопределенная переменная, которая запрашивает ошибку python и останавливает остановку там, но восстанавливает значения, сохраненные до условия ошибки.

Чтобы избежать условий хранения ошибок, используйте предложение по выбранному ответу How to save a Python interactive session?:

save my_session_name 1-4 6 9 

Где моя сессия получит команды в In [1] с помощью [4] и пропустить в [5], save In [6], пропустите In [7], In [8] и сохраните In [9]. Таким образом, вы избегаете оскорбительных взаимодействий.

Восстановление сессии позже:

%run my_session_name.py 
+1

* но это восстановить значения, сохраненные ДО состояния ошибки * - это не мой опыт, как я описано выше.. Я только что перепробовал, чтобы подтвердить. Если I% logstart и do (очевидно, на отдельных строках) 'this = 'является тестом' '' that =' производит ошибку "', то% запускает журнал, 'this' остается неопределенным. – n8henrie

+0

Эй, вы нашли способ решить это позже? У меня тоже есть эта проблема @ n8henrie –

Смежные вопросы