#python #visual-studio-code #jupyter-notebook
#python #visual-studio-code #jupyter-notebook
Вопрос:
Мне нравится новая функциональность в VS code для подключения к удаленному серверу jupter notebook. Это позволяет мне запускать jupyter в контейнере docker и запускать код…
Однако при построении таблиц pandas и т.д. вывод текста не всегда оптимален, и для быстрой итерации было бы здорово иметь, например. доступны интерактивные графики bokeh.
Итак, я подумал о следующем — можно ли запустить jupyter notebook и после этого подключить VS Code к соответствующему ядру. В принципе, таким же образом вы также можете подключить существующее ядро для запущенного ноутбука.
то, как я могу это сделать сейчас:
- запустите сервер jupyter notebook
- запустите новый notebook
- в записной книжке выполните следующую волшебную команду
%connect_info
- это возвращает бит json и некоторые инструкции — просто скопируйте json
- в другой оболочке bash я могу записать этот json в файл с именем my_kernel.json и выполнить
jupyter console --existing my_kernel.json
теперь мой ноутбук находится в моем браузере, а моя консоль подключается к одному и тому же ядру. Таким образом, любая переменная, доступная в моем браузере, также доступна в моей консоли (и наоборот).
Возможно ли что-то вроде выполнения шага 5 в VSCode для… Я хотел бы отправить код из окна моего редактора в мою интерактивную консоль python и получить доступ к тому же ядру из моего ноутбука…
Комментарии:
1. Привет, Джеффри. Я разработчик в команде расширения VSCode Python. Вы не возражаете, если я задам уточняющий вопрос, просто чтобы убедиться, что я понимаю ваш сценарий. Вы упомянули о необходимости подключить это через консоль и получить вывод только текста. Если вы хотите более насыщенный вывод, вы должны иметь возможность использовать интерактивное окно, которое мы создаем, чтобы видеть насыщенный вывод с удаленного сервера. Причина, по которой вы используете консоль для подключения, заключается в том, что вам нужно что-то вроде —existing для удаленного подключения к интерактивному окну?
2. Позвольте мне попытаться уточнить… Моя конечная цель — подключить интерактивное окно в vs code и notebook в браузере к одному и тому же ядру (запущенному в контейнере docker). Причина этого в том, что интерактивное окно отлично подходит для вывода результатов по ячейкам, но в нем по-прежнему отсутствуют некоторые интерактивные функции, к которым я привык (например, графики боке, красиво оформленные фреймы данных, завершение кода в интерактивном окне — например. С помощью фрейма данных найдите некоторые имена столбцов). Теперь я более или менее могу получить желаемый результат, запустив сервер notebook в моем контейнере docker, прикрепив
3. VS code для этого контейнера через расширение docker таким образом, чтобы он выполнялся в моем терминале. Запустите консоль jupyter —extend в этом терминале и позвольте Ctrl shift отправить мой выбор / текущую строку в моем редакторе на мой терминал .. но я хотел бы иметь опцию интерактивного окна
4. Идеальный. Это то, о чем я догадывался, но я хотел быть уверенным. В настоящее время мы это не поддерживаем, но я открою проблему, чтобы отследить ее. Мне кажется, что это сценарий, который было бы неплохо поддерживать.
5. Потрясающе…… Могу ли я где-нибудь повысить его?
Ответ №1:
В настоящее время это не поддерживается. Мы поддерживали подключение к удаленному серверу, но на этом удаленном сервере мы запускаем новый документ без названия, который мы используем. В настоящее время у нас нет способа подключиться к уже запущенному ядру.
Я создал эту проблему, чтобы отследить ее здесь, если вы хотите отследить / проголосовать: https://github.com/Microsoft/vscode-python/issues/4644