tutorial python numpy matplotlib scipy

numpy python tutorial



Alojamiento web Python: Numpy, Matplotlib, Scientific Computing (4)

Escribo software científico en Numpy / Scipy / Matplotlib. Habiendo desarrollado aplicaciones en la computadora de mi casa, ahora estoy interesado en escribir aplicaciones web simples. Ejemplo: el usuario carga una imagen o archivo de audio, mi programa lo procesa usando Numpy / Scipy, y la salida se muestra en el navegador usando Matplotlib, o quizás el usuario puede descargar un archivo procesado.

Ya pago por el alojamiento que tiene Python 2.4.3 instalado, pero no Numpy / Scipy. No tengo acceso de shell a través de la línea de comandos, tampoco. Simplemente arrastre y suelte el FTP. Bastante limitado, pero puedo hacer que funcionen scripts Python / CGI simples.

Sorprendentemente, una búsqueda en la web reveló pocas opciones adecuadas para el alojamiento web con estas capacidades ya incorporadas. (Por favor, guíenme si estoy equivocado). Estoy aprendiendo sobre Google App Engine, pero aún no entiendo completamente su herramientas y limitaciones. Lo que la web me dijo es que otros tienen preocupaciones similares.

Con la esperanza de encontrar soluciones, pensé que haría estas simples preguntas a la increíble comunidad SO:

  1. ¿Existe una forma simple de instalar numpy (o cualquier paquete / biblioteca de terceros) en mi espacio ya alojado? Conozco el camino de Python en mi espacio alojado, y conozco los directorios Python / Numpy relevantes en la computadora de mi casa. ¿Puedo simplemente copiar los archivos y hacer que funcione? Ambos sistemas locales y remotos ejecutan Ubuntu.

  2. ¿Qué sitios de alojamiento existen (gratuitos o de pago) que tienen instalado Numpy / Matplotlib o, si no están instalados, la posibilidad de instalarlo? ¿Hay sitios documentados a los que pueda hacer referencia con aplicaciones en funcionamiento, sin importar cuán simple sea?

  3. ¿Puede Google App Engine ayudarme de alguna manera? ¿O es totalmente para otra cosa? ¿Ustedes u otros lo han usado para escribir aplicaciones científicas en Python / Numpy? Si es así, ¿podría hacer referencia a ellos?

Gracias por tu ayuda.

EDITAR: Después de las respuestas útiles a continuación, compré el plan de $ 20 en Slicehost, ¡y me encanta hasta ahora! (Primero probé Amazon EC2. Debo ser estúpido, pero no pude hacer que funcionara). Configurar el servidor Ubuntu con Apache tomó solo unas horas (y soy un novato de Apache). Me permite hacer exactamente lo que quería con Python y mucho más. Ahora tengo mi propio repositorio remoto para control de versiones. ¡Gracias de nuevo!

EDIT 2: Casi dos años después, probé Linode y EC2 (nuevamente). Linode es genial. EC2 parecía más fácil esta vez, quizás solo sea experiencia agregada, o tal vez sean las mejoras que Amazon hizo a la consola de administración de AWS. Para aquellos interesados ​​en Numpy / Scipy / Matplotlib / Audiolab, esta es mi hoja de trucos de Ubuntu cada vez que ejecuto una instancia de 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 Qué sitios de alojamiento existen (gratuitos o de pago) que tienen instalado Numpy / Matplotlib

PythonAnywhere ofrece alojamiento web y un IDE en el navegador simple; muchos de los paquetes de Python (incluidos NumPy y Matplotlib) están pre-installed . Hay un plan gratuito que puede usar para jugar, y las cuentas "Premium" y "Hosting" con más funciones cuestan $ 5 y $ 10 por mes, respectivamente.

Divulgación completa: trabajo allí ...


App Engine no es compatible con numpy, scipy o matplotlib, por desgracia.

Si sabe exactamente qué SO y CPU utiliza su host, puede hacer una instalación idéntica para usted, descargar e instalar la misma versión de Python que está utilizando, descargar los orígenes de los paquetes que necesita y compilarlos en .so (o .pyd , según la plataforma) archivos, y subirlos - suena como un verdadero tour de force.

Cualquiera de los muchos, muchos sitios que ofrecen alojamiento virtual normal (una máquina virtual, típicamente Linux, con modestos recursos HW, pero privilegios de root para usted, acceso ssh shell, y un gcc que puede usar en particular) será mucho más fácil de trabajar con - esencialmente, descargará e instalará el software que necesita de la misma manera que lo haría en su propia estación de trabajo Linux.


Todavía no tengo los privilegios para comentar, pero puedo proporcionar una "respuesta".

3: App Engine

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

Sin embargo, matplotlib aún está esperando: http://code.google.com/p/googleappengine/issues/detail?id=482 Quizás más personas protagonizando este problema lo hagan posible.

Notaré que svgfig es una opción, ya que es pure python: http://code.google.com/p/svgfig/

Actualizar:

Resulta que matplotlib ya está disponible: https://developers.google.com/appengine/docs/python/tools/libraries27#matplotlib


1: instalar paquetes de terceros en espacios alojados

De hecho, puede instalar paquetes de terceros en su espacio alojado. Si se trata de un paquete python puro, todo lo que se necesita es descomprimirlo en un directorio y luego agregar ese directorio a su variable de entorno PYTHONPATH o sys.path .

Esto puede ser agotador de hacer a menudo, y no funcionará fácilmente para los módulos compilados. Si tiene acceso de shell a su host de python, el excelente paquete de virtualenv permite configurar un entorno de python privado con sus propias bibliotecas.

Para configurar tu virtualenv, harás algo como esto en el shell:

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

Puede seguir ejecutando easy_install para cualquier otra cosa que desee instalar en su entorno personal de python.

Ahora, cuando escriba sus scripts de Python, querrá usar su intérprete de Python privado, si eso es posible:

#!/home/myuser/my_python/bin/python import numpy # script here

Si su env de python no se puede especificar (como si lo ejecutara mod_wsgi), deberá agregarlo a la ruta de importación:

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

2: sitios de alojamiento con numpy

No puedo pensar en ningún sitio de alojamiento que ofrezca Numpy preinstalado. Sin embargo, Dreamhost / Bluehost for sharedhosts proporciona acceso SSH, y con el acceso al shell puede instalar numpy usando los métodos que describí anteriormente. Cualquier servidor privado virtual como Linode / Slicehost te permitirá instalar lo que desees.

3: App Engine

Como se mencionó anteriormente, AppEngine no le permitirá instalar extensiones C (pero las python puras sí funcionan), por lo que es poco probable que Numpy funcione para usted allí, ya que sospecho que algunas de sus funciones usan aceleraciones de C.