2016-09-27 4 views
0

Я запускаю ноутбук Jupyter на сервере и выполняю его с клиентского компьютера. На сервере Rstudio можно запрограммировать открытие файла на стороне сервера на новой вкладке с помощью file.show. Иногда это очень удобно. Например, у меня есть скрипт, обрабатывающий довольно большое изображение. Из-за его размера я не хочу, чтобы он отображался непосредственно на панели вывода, но я хочу просмотреть его на новой вкладке. В Rstudio сервере я обычно делаю:Есть ли способ программно открыть файл на стороне сервера на новой вкладке?

... image processing code .... 
ggsave('temp.png') 
file.show('temp.png') 

Это автоматически выскочит новое изображение в новой вкладке, как только сценарий закончен.

Возможно ли сделать что-то подобное в Jupyter?

Я заметил, что смог достичь этого, щелкнув файл изображения во встроенном браузере файлов, но мне интересно, можно ли это запрограммировать.

Аналогично, возможно ли программировать открытие веб-страницы на новой вкладке, например browseURL на сервере Rstudio? Обратите внимание, что webbrowser.open(url) не совсем это делает, потому что он пытается открыть локальный браузер , который в сценарии server-client не откроет новую вкладку на стороне клиента.

ответ

2

Вы можете сделать ссылку. Относительные URL-адреса откроются на новой вкладке браузера. Файлы подаются относительно каталога, в котором находится ноутбук, над которым вы сейчас работаете.

В Python:

from IPython.display import display, HTML 
display(HTML('<a href="temp.png">see image</a>')) 

Открытие новых вкладок программно часто вызывает блокировку всплывающих окон, но публиковать ссылку, пользователь щелкает должен быть надежным.