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

Я пишу научное программное обеспечение в 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? Если да, можете ли вы их сослаться?

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

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 

2 Solutions collect form web for “Веб-хостинг Python: Numpy, Matplotlib, Scientific Computing”

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

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

3: AppEngine

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

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

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

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

Python - лучший язык программирования в мире.