Как отправить серверное приложение bokeh? - PullRequest
0 голосов
/ 27 июня 2018

Каков предпочтительный способ развертывания приложения, которое должно запускаться с bokeh serve --show, для других людей?

Я нашел только тему 2014 года 2014 года * о том, кто использовал Vagrant для этой цели. Есть ли лучшие альтернативы?

Обновление

Мне нужен режим «офлайн», чтобы другой человек мог запускать его на своем компьютере, а не через веб-доступ.

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Упаковка с помощью pyinstaller (http://jishichao.com/2017/01/10/package-a-python-program-to-a-single-executable-file/) кажется правильным подходом.

Однако при упаковке боке с помощью pyinstaller есть определенные нюансы. Билет № 1898 (https://github.com/pyinstaller/pyinstaller/issues/1898) перечисляет один из них и дает некоторые подсказки, как его преодолеть. В определенной степени это помогло, но мне пока не удалось создать полнофункциональный exe-файл с использованием этого метода.

0 голосов
/ 28 июня 2018

Так что это немного зависит от структуры того, что вы строите - в сочетании с чем-то вроде колбы или если вы просто хотите, чтобы фактический сюжет был видимым.

Прежде всего, документы замечательные но в целом:

1) Только сюжет боке, ничего более:

a) Разверните на Heroku как в этот вопрос.

b) Развертывание через обратный прокси на каком-либо веб-сервере. Более подробные примеры доступны в связанных документах, но это основной пример конфигурации nginx, предполагающей, что вы выполняете что-то вроде bokeh serve myapp.py --port 5100:

server {
    listen 80 default_server;
        server_name _;
        access_log  /tmp/bokeh.access.log;
        error_log   /tmp/bokeh.error.log debug;

    location / {
        proxy_pass http://127.0.0.1:5100;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host:$server_port;
        proxy_buffering off;
    }

}

Если вам нужен ssl (вероятно), для этого также есть примеры.

2) Интегрировано с Фляской / Джанго / Безотносительно:

В этом случае вы не можете использовать Heroku в качестве сервера bokeh (tornado), а серверы flask / etc должны работать отдельно, и Heroku просто не поддерживает это, поэтому, если вы не хотите настраивать 2 отдельных приложения с одним выполняя каждый свой из картины.

Это оставляет вам хорошие старые игры с обратным прокси. Разница здесь в том, что вы должны запустить оба процесса (например, с супервизором), а затем настроить файл конфигурации для отправки этих запросов туда, куда они должны идти. В этом случае список рассылки - ваш лучший выбор для получения подробной информации, поскольку он будет немного зависеть от того, что вам нужно.

...