Чем плох веб-сервер Python на Windows?

Я поставлен перед задачей: сделать некое веб-приложение на небольшой коллектив (в пределах десяти человек), результатом работы которого является довольно сложный Excel-файл. Пока что я это вижу так: lighttpd + python + flask + uWSGI. Сложность в том, что, как я понял из чтения ряда статей, лучше всего для вывода xlsx использовать не внешнюю питонью библиотеку, а com-объект Винды. Но очень уж не хочется запускать сервер на ней, родимой - и с WSGI там туго, и мануалов мало, и медленнее, и вообще не кошер. Второй вариант - разделить задачи: на centOS'е пусть крутится веб с питоном, а за генерацией xlsx пусть суётся на виндовую машину с запущенным сервисом на том же питоне. Благо, машин достаточно.
Также я открыт к предложениям поменять Х на Y (lighttpd на ngnix, com на openpyxl, python на basic)
Итак, что лучше:
1) Переступить через себя и всё запустить на винде (хотя бы на IIS);
2) Разделить задачи по разным машинам с некоторой потерей производительности (не уверен, что смогу сделать нормальный многопоточный сервис генерации xlsx);
3) Оставить глупые затеи и всё переделать так: ________ (вписать нужное)
  • Вопрос задан
  • 2214 просмотров
Решения вопроса 1
vvpoloskin
@vvpoloskin
Инженер связи
Давайте посмотрим. Хитрое (думаю, вы понимаете что вам надо и это сложнее объединения ячеек и применения к ним различных стилей форматирования) преобразование xls-файлов задача довольно трудоемкая. Запустив ее чисто на Linux вы тоже можете упереться в производительность, особенно, если дело дойдет до интерпретации формул, работой с бинарными архивированными данными или эмуляцией VBA.

С другой стороны, естественно, нужно быть к этому готовым, весь функционал на Linux вы не получите, с некоторой долей уверенности можно сказать, что получите грабли в самых неожиданных местах, например, при работе с кодировками или подготовке документа на печать.

Поэтому с моей точки зрения правильнее делать на разных системах, если хотите сделать наверняка.

На счет вашего страха перед многопоточностью - вам не надо это реализовывать. Достаточно запустить на windows-машине IIS и обращаться к нему только за этим файлом, больше не зачем. Или привлечь для этих же целей обычные шареные папки, в которых будет исполняемый файл. То есть переложить многопоточность уже на существующие сервисы и службы.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
sim3x
@sim3x
довольно сложный Excel-файл
понятие растяжимое

https://xlsxwriter.readthedocs.org/
www.python-excel.org
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы