43 votes

Hébergement Web Python: Numpy, Matplotlib, Calcul scientifique

J'écris des logiciels scientifiques dans Numpy/Scipy/Matplotlib. Ayant développé des applications sur mon ordinateur à la maison, je m'intéresse maintenant à l'écriture d'applications web simples. Exemple: l'utilisateur télécharge une image ou un fichier audio, mon programme de processus à l'aide de Numpy/Scipy, et la sortie est affichée sur le navigateur à l'aide de Matplotlib, ou peut-être à l'utilisateur de télécharger un fichier traité.

J'ai déjà payer pour l'hébergement qui n'ont Python 2.4.3 installé, mais pas de Numpy/Scipy. Je n'ai pas accès au shell via la ligne de commande, soit. Il suffit de glisser-déposer FTP. Assez limité, mais je peux obtenir de simples Python/scripts CGI de travail.

Étonnamment, une recherche sur le web a révélé quelques options appropriées pour l'hébergement web avec ces fonctionnalités déjà intégrées. (Merci de me guider si je me trompe.) Je suis en train d'apprendre sur le Google App Engine, mais je n'ai toujours pas une compréhension complète sur ses outils et ses limites. Ce que le web a fait me dire, c'est que les autres ont des préoccupations similaires.

En espérant pour les solutions, j'ai pensé que je voudrais poser ces questions simples pour l'awesome DONC de la communauté:

  1. Est-il un moyen simple d'installer numpy (ou de tout logiciel tiers/bibliothèque) sur mon déjà accueilli l'espace? Je sais que le Python path hébergé sur mon espace, et je sais que pertinents Python/Numpy répertoires sur mon ordinateur à la maison. Puis-je simplement copier les fichiers sur et de le faire travailler? Les systèmes locaux et distants d'exécuter Ubuntu.

  2. Ce que l'hébergement de sites existent (gratuites ou payantes) qui ont Numpy/Matplotlib installé ou, si il n'est pas installé, la possibilité de l'installer? Il n'existe aucun documenté sites que vous pouvez référencer avec les applications de travail, peu importe comment simple?

  3. Pouvez Google App Engine m'aider d'une façon quelconque? Ou est-ce totalement autre chose? Avez-vous ou d'autres personnes l'ont utilisé pour écrire des applications scientifiques en Python/Numpy? Si oui, pourriez-vous référence?

Je vous remercie pour votre aide.

EDIT: Après les réponses utiles ci-dessous, j'ai acheté le 20 $de plan à Slicehost, et je l'aime autant! (J'ai d'abord essayé d'Amazon EC2. Je dois être stupide, mais je ne pouvais pas le faire fonctionner.) La configuration du serveur Ubuntu avec Apache a pris à peine quelques heures (et je suis un Apache novice). Cela me permet de faire exactement ce que je voulais avec Python et beaucoup plus. J'ai maintenant mon propre dépôt distant pour le contrôle de version, trop. Merci encore!

EDIT 2: Près de deux ans plus tard, j'ai essayé Linode et EC2 (encore une fois). Linode est grande. EC2 semblait plus facile cette fois-ci, peut-être que c'est juste d'ajouter l'expérience, ou peut-être les améliorations que Amazon a fait à AWS management console. Pour ceux qui sont intéressés dans Numpy/Scipy/Matplotlib/Audiolab, voici mon Ubuntu feuille de triche à chaque fois que je lance une instance 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

17voto

Crast Points 6207

1: Installation des packages tiers pour l'hébergé espaces

En effet, vous pouvez installer des packages tiers vers votre site de l'espace. Si c'est un pur python package, il suffit de le décompresser dans un répertoire, puis ajouter ce répertoire à votre variable d'environnement PYTHONPATH ou sys.path.

Cela peut être fatiguant de le faire souvent, et ne sera pas un travail facile pour les modules compilés. Si vous avez un accès shell à votre python hôte, l'excellent virtualenv package vous permet de faire des mis en place une environnement python avec ses propres bibliothèques.

Pour configurer votre virtualenv, vous allez faire quelque chose de ce genre à la coque:

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

Vous pouvez continuer à courir easy_install pour autre chose que vous souhaitez installer dans votre environnement python.

Maintenant, quand vous écrivez vos scripts python, vous souhaitez utiliser votre interpréteur python, si c'est possible:

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

import numpy

# script here

Si votre env python ne peut pas être spécifié (comme s'il était exécuté par mod_wsgi), vous devrez les ajouter à l'importation chemin:

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

import numpy

2: les sites d'Hébergement avec numpy

Je ne peux pas penser à des sites d'hébergement désinvolte qui offrent numpy pré-installé. Cependant, Dreamhost/Bluehost pour sharedhosts fournir un accès SSH, et avec un accès shell, vous pouvez installer numpy en utilisant les méthodes que j'ai décrites ci-dessus. Tout Serveur Privé Virtuel, comme Linode/Slicehost vous permettra d'installer ce que vous désirez, ainsi.

3: AppEngine

Comme mentionné ci-dessus, AppEngine ne vous permettra pas d'installer des extensions C (mais pur python n'travail), il est donc peu probable numpy va travailler pour vous sur, car je soupçonne certaines de ses fonctionnalités, utilisez C accélérations.

12voto

Alex Martelli Points 330805

App Engine ne prend en charge aucun de numpy, scipy, ou matplotlib, hélas.

Si vous savez exactement quel système d'exploitation et PROCESSEUR de votre hôte, vous pourriez faire une installation identique pour vous-même, télécharger et installer la même version de Python qu'ils utilisent, télécharger les sources de paquets dont vous avez besoin et de les construire en .so (ou .pyd, selon la plate-forme), les fichiers et télécharger ces -- sons comme un vrai tour de force.

Tout de la de nombreux, de nombreux sites qui offrent normal d'hébergement virtuel (une machine virtuelle, généralement Linux, avec de modestes HW ressources, mais des privilèges root pour vous, shell ssh d'accès, et un gcc vous pouvez utiliser en particulier) sera beaucoup plus facile de travailler avec -- essentiellement, vous aurez à télécharger et installer les logiciels dont vous avez besoin seulement de parler de la même manière que vous le feriez sur votre propre poste de travail Linux!

7voto

Giles Thomas Points 1691

2 Ce que l'hébergement de sites existent (gratuites ou payantes) qui ont Numpy/Matplotlib installé

PythonAnywhere offre d'hébergement web et d'un simple navigateur IDE; beaucoup de paquets Python (y compris NumPy et Matplotlib) sont pré-installés. Il y a un plan gratuit que vous pouvez utiliser pour jouer, et "Premium" et "Hébergement" les comptes avec plus de fonctionnalités sont de 5 $et de 10 $/mois respectivement.

La divulgation complète: j'y travaille...

6voto

klimaat Points 386

Je n'ai pas de privilèges augmentés par rapport encore de commentaire, mais je peux fournir une "réponse".

3: AppEngine

Numpy est maintenant disponible sur Google App Engine: https://code.google.com/p/googleappengine/issues/detail?id=190

Cependant, matplotlib est toujours en attente: http://code.google.com/p/googleappengine/issues/detail?id=482 Peut-être que plus de gens en vedette cette question de volonté de faire que cela se produise.

Je note que svgfig est une option, car elle est pure python: http://code.google.com/p/svgfig/

Mise à jour:

S'avère matplotlib est maintenant disponible: https://developers.google.com/appengine/docs/python/tools/libraries27#matplotlib

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X