Подтвердить что ты не робот

Веб-хостинг Python: Numpy, Matplotlib, Scientific Computing

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

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

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

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

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

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

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

Благодарим вас за помощь.

EDIT: после полезных ответов ниже, я купил план на 20 долларов на Slicehost, и мне это очень нравится! (Я сначала попробовал Amazon EC2. Должен быть глупым, но я просто не мог заставить его работать.) Настройка сервера Ubuntu с Apache заняла всего несколько часов (и я новичок в Apache). Это позволяет мне делать именно то, что я хотел с Python и многое другое. У меня теперь есть собственный удаленный репозиторий для контроля версий. Еще раз спасибо!

EDIT 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
4b9b3361

Ответ 1

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

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

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

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

$ 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

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

3: AppEngine

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

Ответ 2

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

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

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

Ответ 3

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

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

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

Ответ 4

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

3: AppEngine

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

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

Я хочу заметить, что svgfig является опцией, поскольку это чистый питон: http://code.google.com/p/svgfig/

Update:

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