Веб-хостинг Python: Numpy, Matplotlib, Научные вычисления - PullRequest
43 голосов
/ 17 января 2010

Я пишу научное программное обеспечение на Numpy / Scipy / Matplotlib. Разрабатывая приложения на своем домашнем компьютере, я теперь заинтересован в написании простых веб-приложений. Пример: пользователь загружает изображение или аудиофайл, моя программа обрабатывает его с помощью Numpy / Scipy, а вывод отображается в браузере с помощью Matplotlib, или, возможно, пользователь может загрузить обработанный файл.

Я уже плачу за хостинг, на котором установлен Python 2.4.3, но нет Numpy / Scipy. У меня нет доступа к оболочке через командную строку, либо. Просто перетащите FTP. Довольно ограничено, но я могу заставить работать простые скрипты Python / CGI.

Удивительно, но в результате поиска в Интернете было найдено несколько подходящих вариантов для веб-хостинга с уже встроенными этими возможностями. (Пожалуйста, сообщите мне, если я ошибаюсь.) Я изучаю Google App Engine, но у меня до сих пор нет полной версии. понимание его инструментов и ограничений. В сети говорят мне, что у других есть подобные проблемы.

Надеясь на решения, я подумал, что задам эти простые вопросы удивительному SO-сообществу:

  1. Существует ли простой способ установки numpy (или любого стороннего пакета / библиотеки) на мое уже размещенное место? Я знаю путь Python в своем размещенном пространстве и знаю соответствующие каталоги Python / Numpy на моем домашнем компьютере. Могу ли я просто скопировать файлы и заставить их работать? Ubuntu работает как на локальных, так и на удаленных системах.

  2. Какие существуют хостинговые сайты (бесплатные или платные), на которых установлена ​​Numpy / Matplotlib или, если она не установлена, есть возможность ее установки? Существуют ли какие-либо документированные сайты, на которые можно ссылаться с работающими приложениями, какими бы простыми они ни были?

  3. Может ли Google App Engine мне помочь? Или это полностью для чего-то другого? Вы или другие использовали его для написания научных приложений на Python / Numpy? Если да, не могли бы вы сослаться на них?

Спасибо за вашу помощь.

РЕДАКТИРОВАТЬ: После полезных ответов ниже, я купил план $ 20 в Slicehost, и я люблю его до сих пор! (Сначала я попробовал Amazon EC2. Должно быть, я был глуп, но просто не мог заставить его работать.) Настройка сервера Ubuntu с Apache заняла несколько часов (и я новичок в Apache). Это позволяет мне делать именно то, что я хотел с Python и многое другое. Теперь у меня есть свой собственный удаленный репозиторий для контроля версий. Еще раз спасибо!

РЕДАКТИРОВАТЬ 2: Почти два года спустя я попробовал Linode и EC2 (снова). Линод великолепен. В этот раз EC2 казался проще - возможно, это просто добавленный опыт, или, может быть, это улучшения, внесенные Amazon в консоль управления AWS. Для тех, кто интересуется Numpy / Scipy / Matplotlib / Audiolab, вот моя шпаргалка Ubuntu всякий раз, когда я запускаю экземпляр EC2:

ec2:~$ sudo aptitude install build-essential python-scipy ipython 
       python-matplotlib python-dev python-setuptools libsndfile-dev 
       libasound2-dev mysql-server python-mysqldb 

Upload scikits.audiolab-0.11.0

ec2:~/scikits.audiolab-0.11.0$ sudo python setup.py install

ec2:~$ sudo rm -rf scikits.audiolab-0.11.0

ec2:~$ nano .ipython/ipy_user_conf.py

ip.ex('import matplotlib; matplotlib.use("Agg"); import scipy, pylab, 
       scipy.signal as sig, scipy.linalg as lin, scipy.sparse as spar, 
       os, sys, MySQLdb, boto; from scikits import audiolab')

import ipy_greedycompleter

import ipy_autoreload

Ответы [ 4 ]

17 голосов
/ 17 января 2010

1: установка сторонних пакетов в размещенные пространства

Вы действительно можете устанавливать сторонние пакеты в ваше размещенное пространство. Если это чистый пакет Python, все, что нужно, это распаковать его в каталог, а затем добавить этот каталог в переменную среды PYTHONPATH или sys.path.

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

Чтобы настроить свой virtualenv, вы сделаете что-то подобное в оболочке:

$ virtualenv $HOME/my_python
$ $HOME/my_python/bin/easy_install numpy

Вы можете продолжать запускать easy_install для всего, что вы хотите установить в своей персональной среде python.

Теперь, когда вы пишете свои скрипты на python, вы захотите использовать свой личный интерпретатор python, если это возможно:

#!/home/myuser/my_python/bin/python

import numpy

# script here

Если ваш python env не может быть указан (например, если он запускается mod_wsgi), вам нужно добавить его в путь импорта:

import sys
sys.path.insert(0, '/home/myuser/my_python/lib/python2.5/site-packages')

import numpy

2: хостинг сайтов с numpy

Я не могу придумать ни одного хостинг-сайта, который бы предлагал предварительно установленную кучу. Однако Dreamhost / Bluehost для общих хостов обеспечивает SSH-доступ, а с помощью оболочки вы можете установить NUMPY, используя методы, описанные выше. Любой виртуальный частный сервер, такой как Linode / Slicehost , также позволит вам установить все, что вы пожелаете.

3: AppEngine

Как уже упоминалось выше, AppEngine не позволит вам установить расширения C (но чисто Python те, которые работают), поэтому вряд ли NumPy будет работать для вас там, так как я подозреваю, что некоторые из его функций используют ускорения C.

12 голосов
/ 17 января 2010

App Engine не поддерживает ни numy, scipy, ни matplotlib, увы.

Если вы точно знаете, какую ОС и ЦП использует ваш хост, вы можете выполнить идентичную установку для себя, загрузить и установитьту же самую версию Python, которую они используют, загрузите исходные коды необходимых вам пакетов и встраивайте их в файлы .so (или .pyd, в зависимости от платформы) и загружайте их - звучит как настоящая сила.

Любой из множества многих сайтов, которые предлагают обычный виртуальный хостинг (виртуальная машина, обычно Linux, со скромными ресурсами HW, но привилегиями root для вас, доступом к ssh-оболочке и gcc вы можете использовать, в частности) будет намного легче работать - по сути, вы будете загружать и устанавливать необходимое программное обеспечение примерно так же, как на своей рабочей станции Linux!

7 голосов
/ 18 мая 2012

2 Какие существуют хостинговые сайты (бесплатные или платные), на которых установлен Numpy / Matplotlib

PythonAnywhere предлагает веб-хостинг и простую IDE в браузере; множество пакетов Python (включая NumPy и Matplotlib) предустановлено . Существует бесплатный план, который вы можете использовать для тренировок, а учетные записи «Премиум» и «Хостинг» с большим количеством функций составляют 5 и 10 долларов в месяц соответственно.

Полное раскрытие: я работаю там ...

6 голосов
/ 06 марта 2012

У меня пока нет прав комментировать, но я могу дать "ответ".

3: AppEngine

Numpy теперь доступен в Google App Engine: https://code.google.com/p/googleappengine/issues/detail?id=190

Тем не менее, matplotlib все еще ждет: http://code.google.com/p/googleappengine/issues/detail?id=482 Возможно, большее количество людей, играющих главную роль в этой проблеме, сделает это возможным.

Замечу, что svgfig - это опция, так как это чистый python: http://code.google.com/p/svgfig/

Обновление:

Оказалось, что matplotlib теперь доступен: https://developers.google.com/appengine/docs/python/tools/libraries27#matplotlib

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