2010-01-17 3 views
42

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

Я уже платил за хостинг, у которого установлен 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 

ответ

16

1: Установка пакетов сторонних для размещенных пространств

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

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

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

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

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

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

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

import numpy 

# script here 

Если ваш питон окр не может быть определен (например, при запуске от 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 с помощью методов, описанных выше. Любой виртуальный частный сервер, такой как /Slicehost, позволит вам установить все, что пожелаете.

3: AppEngine

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

+0

Благодарим вас за полезный совет. Я попробую это, насколько позволяет моя учетная запись. –

+0

Не используйте sys.path.insert(), вместо этого используйте site.addsitedir(). Последний правильно интерпретирует .pth файлы в каталоге site-packages. Существуют также вопросы переупорядочения, с которыми вам нужно иметь дело. Прочитайте 'http://code.google.com/p/modwsgi/wiki/VirtualEnvironments'. –

+0

numpy и matplotlib не поддерживаются на движке приложений w/python. 2.7 –

12

App Engine не поддерживает какой-либо из NumPy, SciPy или Matplotlib, увы.

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

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

+0

Для виртуального хостинга. Я использую Slicehost. Amazon EC2 - еще один популярный вариант. – airportyh

+0

Еще одно голосование за переход на решение виртуального сервера. Я был сожжен, собрав решение на общем хосте, только чтобы сбить его с помощью административной политики с помощью услуги хостинга. Я использовал учетную запись виртуального сервера на www.maxvps.com в течение двух лет с большим успехом в установке любого фейерверка Python, который я хочу. –

+0

Алекс: Спасибо за четкий ответ. Итак, с одним из этих общих виртуальных хостов, с привилегиями root и доступом к оболочке, я мог бы установить пакеты с кучей «apt-get install», как дома? Это было бы прекрасно. В интересах денег я сначала увижу, могу ли я изменить существующее пространство для работы. –

6

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

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 вариант, как это чистый питон: http://code.google.com/p/svgfig/

Update:

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

+0

Благодарим вас за то, что вы указали эту недавнюю (неделю назад) дополнение к GAE! http://googleappengine.blogspot.in/2012/02/announcing-general-availability-of.html –

7

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

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

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

Смежные вопросы