Есть ли способ пометить ячейку в ipython-ноутбуке только для чтения, используя формат json в файле ipynb? (Например, атрибут ячейки "readonly":false
или некоторые такие.) Если нет, существует ли способ jquery hack для обнаружения события двойного щелчка в ячейке?
Ячейки только для чтения в записной книжке ipython
Ответ 1
Да, выполните следующие действия
- Выбрать представление на панели меню
- Панель инструментов Point to Cell и выберите "Редактировать метаданные"
- Кнопка "Редактировать метаданные" появится в правом верхнем углу ячейки.
- Нажмите на эту кнопку и отредактируйте всплывающее окно json. Установите для редактируемого ключа значение true для значения false, чтобы получить желаемый эффект.
Ответ 2
Существует расширение для IPython, которое должно быть таким:
Расширение ячейки только для чтения.
Получение работы - это нечто иное, но оно есть.
Ответ 3
Другой альтернативой, для которой не требуется какой-либо инструмент стороннего производителя, является редактирование метаданных записной книжки, как описано здесь.
Чтобы редактировать метаданные ячейки, у вас есть два варианта. Для меня работало открыть блокнот в редакторе и найти ячейку, которую я хотел заблокировать. Это не очень эффективная процедура. В ответе @Richard Ackon предлагается более простой вариант:
- Выберите
View
в строке меню. - Укажите на
Cell Toolbar
и выберитеEdit Metadata
. - Кнопка
Edit Metadata
появится в верхнем правом углу ячейки. - Нажмите на эту кнопку и отредактируйте всплывающий json.
Однако я не мог его использовать, так как работал с Jupyter Lab, и эти меню и опции там не появлялись.
Получив метаданные ячейки в файле (или разделе) json, просто добавьте следующие строки:
"metadata": {
"trusted": true,
"editable": false,
"deletable": false
}
Сохраните и перезагрузите записную книжку в Jupyter и, tadah !, ваша ячейка не может быть изменена или удалена.
К сожалению, выходные данные все еще можно очистить, преднамеренно выбрав эту опцию в строке меню (Edit
> Clear Ouputs
). Конечно, это может произойти, только если вы хотите очистить выходные данные, а не просто обновить их, запустив ячейку.
Ответ 4
Ни один из предложенных ответов не сработал для меня, но этот сработал:
http://bubhub.bumc.bu.edu/2016/10/07/how-to-make-markdown-cells-read-only-in-jupyter-notebook/
Хотя он работал только на моем компьютере, когда я отправил его коллеге, это не сработало.