2015-05-05 2 views
0

Я создал Bokeh приложение, основанное главным образом на этом рецепте: http://bokeh.pydata.org/en/latest/docs/gallery/unemployment.htmlЗамороженный Bokeh приложение слишком большой

Это прекрасно работает, но мне нужно, чтобы иметь возможность распространять это приложение для моей команды, большинство из которых не имеют python, не говоря уже о bokeh.

Я попытался создать это в исполняемом файле, используя cx_freeze, но результатом может быть весь мой дистрибутив python как его 360+ МБ! Это без меня, глядя на некоторые отсутствующие zip-файлы и т. Д., Которые, вероятно, нужно добавить в файл setup.py. Обратите внимание, что мой setup.py очень минималистский. Это, в основном, копирование и разметка от http://cx-freeze.readthedocs.org/en/latest/distutils.html

В любом случае, это слишком много. Есть ли у вас какие-либо предложения относительно того, как я могу это уменьшить? Или, может быть, есть ли альтернативные утилиты, которые я могу использовать для получения аналогичного результата без такого количества зависимостей? Быстрый просмотр в каталоге сборки показывает зависимости, такие как QT, scipy и numpy и tcl.

В основном я ищу, чтобы создать карту использования ram для встроенной системы. Мой текущий вывод выглядит следующим образом: Обратите внимание, что дополнительную информацию об адресах можно получить, наведя указатель мыши на соответствующий адрес. Результат также динамически перемещается. Боке действительно сияет здесь!

ram usage

Ура!

ответ

0

Bokeh (начиная с 0.8.2) в настоящее время отправляет сервер вместе с основной библиотекой. В результате могут возникать зависимости, которые вам не нужны. Планируется отделить сервер в ближайшем будущем, так что эти зависимости можно управлять отдельно. В то же время вы можете удалить такие вещи, как scipy и redis, если вы их не используете. Я не знаю о появившемся пакете Qt; Bokeh не использует Qt (или Tcl) в любой емкости.

+0

Спасибо за совет! @bigreddot Интересно, сможете ли вы также прокомментировать эту ошибку: FileNotFoundError: [Errno 2] Нет такого файла или каталога: 'c: \\ projects \\ patch2map \\ build \\ exe.win-amd64-3.4 \\ library.zip \\ bokeh \\ _ templates \\ resources.html ' Возможно, это не место для этого, и я могу сделать отдельный поток об этом. В моей setup.py у меня есть: build_exe_options = {"packages": ["bokeh"], –

+0

Я предполагаю, что 'cx_freeze' не включает в себя важные и необходимые файлы, у которых нет файла' .py' суффикс. Есть ли способ сказать 'cx_freeze', что есть дополнительные файлы, которые необходимо упаковать? Я, к сожалению, вообще не знаком с 'cx_freeze', поэтому я не могу предложить гораздо больше рекомендаций, чем сказать, что каждая вещь в пакете' bokeh' в 'site-packages' важна для сохранения. – bigreddot

+0

Спасибо за помощь. Я понимаю проблему, но я все еще не уверен, как ее решить. Я знаю, что могу заставить cx_freeze включить весь каталог, но я не уверен, как я его задержу в нужном месте. Мне кажется, мне просто нужно взглянуть на альтернативный механизм. В любом случае, вы ответили на мой вопрос. Благодарю. –

0

я решил использовать библиотеку JavaScript: d3 и на основе моего решения на основе существующего я нашел в Интернете: http://bl.ocks.org/ilanman/9598445#index.html Я ничего не знаю о Javascript или d3, но хак-н-слэш подход получил меня хороший решение. В бинарнике python у меня теперь есть только вывод файла с разделяемой вкладкой с данными для построения, а код javascript, встроенный в источник html, делает все остальное!