По сути я хочу сделать обратныйКак изменить «nbconvert - from python»?
ipython nbconvert --to python foo.ipynb
IOW, я хочу, чтобы программно «синтезировать» IPython блокноты из исходного кода Python (возможно, соответствующим образом комментировал).
Есть ли способ для этого?
FWIW, я ветеран пользователя Emacs и недавний «конвертируем» его в org-mode
, поэтому я особенно приветствую решения, которые хорошо работают с ними.
Почему я хочу это сделать? Это очень длинная и утомительная история, но вкратце: мне нужно включить домашние задания для класса в виде файлов * .ipynb, но мне не нравится работать с ноутбуками iPython, так как я-фобик с мышью, только для текста Emacs-голова. Инструменты для работы с ноутбуками iPython в Emacs ужасны, если они вообще работают (на самом деле это «длинная и утомительная» часть истории). Единственный оставшийся ход действий для меня - это тот, о котором идет речь.
Теперь это проблема первого мира :). Я думаю, проблема в том, что ноутбуки содержат больше информации, чем просто код. Преобразование 'ipynb'->' py' не является проблемой, потому что вы потеряете информацию. Преобразование 'py'->' ipynb' нуждается в дополнительной информации ... Это говорит: Ноутбуки - это просто файлы 'json'. Конечно, вы можете создавать свои собственные ноутбуки и запускать их через командную строку, например, с помощью 'runipy'. Легче было бы: Напишите свой код в своем любимом редакторе и скопируйте результаты в блокнот перед отправкой домашней работы :) – cel
@cel Действительно, это проблема первого мира: у меня есть RSI от использования мыши; нужна операция для обоих плеч; моя ненависть к использованию мыши имеет медицинскую основу. (Опять же, я не могу придумать какую-либо проблему, опубликованную в SO, которая * не * проблема первого мира.) Что касается вашего предложения для копирования-вставки: каждая домашняя работа влечет за собой заполнение 20-30 пробелов кодом. Это 20-30 операций копирования-вставки. Нет, спасибо. Но спасибо за указатель runipy. – kjo
Извините, что слышу это. Ноутбуки IPython не были предназначены для редактирования через командную строку. Но, как я уже сказал, конечно, никто не мешает вам изучить структуру файлов 'json' и манипулировать ноутбуком emacs.Таким образом, в принципе, можно писать и редактировать ноутбуки без использования gui. Конечно, это не очень приятное решение. Но я сомневаюсь, что есть лучшее решение этой довольно необычной проблемы. – cel