Размещать нетривиальную программу на Python в Интернете? - PullRequest
1 голос
/ 14 апреля 2011

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

У меня три вопроса:

  1. Что лучше (быстрее, проще,без головной боли) способ размещения программы на питоне онлайн?

    В настоящее время я смотрю на Google App Engine и Веб-фреймворки для Python , но все параметры немного ошеломляют.

  2. Какой графический интерфейс/ viz библиотеки без проблем перенесут в среду веб-приложений?

    Я готов пожертвовать некоторой производительностью ради простоты.

    (Google App Engine не может делать библиотеки C, поэтому возникает дилемма.)

  3. Где я могу узнать больше о запуске программы локально или о том, что программа постоянно работает на сервере и принимает запросы от нескольких пользователей?

В настоящее время у меня естьрабочая программа Python, которая использует только стандартные библиотеки Python.В настоящее время он использует около 2,7 ГБ оперативной памяти, но по мере увеличения набора данных, я предсказываю, что он будет использовать ближе к 6 ГБ.Я могу запустить его на своей личной машине, и все это просто замечательно.Я хотел бы продолжить разработку внешнего интерфейса на своем домашнем компьютере и позже внедрить веб-приложение.

Вот релевантный предыдущий пост моего.

Ответы [ 3 ]

1 голос
/ 14 апреля 2011

В зависимости от ваших знаний по администрированию сервера, вы должны рассмотреть выделенный сервер.Я выполнял некоторые пользовательские модули Python с Numpy, Scipy, Pandas и т. Д. На некоторых данных на общем сервере с Godaddy.Одна программа, которую я написал, заняла 120 секунд.Недавно мы перешли на выделенный сервер, и теперь это занимает 2 секунды.Совместно используемая среда использовала CGI для запуска Python, и я установил mod_python на выделенном сервере.

Использование выделенного сервера позволяет выполнять ПОЛНЫЙ контроль (включая root-доступ) на сервере, что позволяет компилировать и / или устанавливать что-либо.Это немного дорого, но если вы зарабатываете на своих вещах, это может стоить.

Другой вариант - использовать что-то вроде http://www.dyndns.com/, где вы можете разместить домен самостоятельно.машина.

Итак, с учетом сказанного, возможно, некоторые ответы:

  1. Это зависит от ваших требований.Для ~ 4 ГБ ОЗУ может потребоваться выделенный сервер.То, что вы спрашиваете, не обязательно является легкой задачей, поэтому не бойтесь запачкать руки.

  2. Не уверен, что вы здесь имеете в виду.

  3. Сервер - это просто компьютер, который отвечает на запросы.На выделенном сервере (я все время упоминаю) вы работаете в среде Unix (или Windows), так же, как вы делаете это локально.Вы используете ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ (например, веб-сервер Apache) для обслуживания запросов клиентов.Мой голос - mod_python.

0 голосов
/ 03 мая 2011

Существует несколько хороших инструментов визуализации на основе javascript, поэтому вы можете смоделировать ваше приложение, чтобы оно возвращало необработанные (json) данные и отображало их на клиенте. Я могу упомянуть d3.js http://mbostock.github.com/d3/ и JavaScript InfoVis Toolkit http://thejit.org/

0 голосов
/ 14 апреля 2011

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

http://aws.amazon.com/ec2/#instance

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

...