title: Python web hosting: Numpy, Matplotlib, Scientific Computing
body: <p>I write scientific software in Numpy/Scipy/Matplotlib. Having developed applications on my home computer, I am now interested in writing simple web applications. Example: user uploads image or audio file, my program processes it using Numpy/Scipy, and output is displayed on the browser using Matplotlib, or perhaps the user can download a processed file. </p>
  
  <p>I already pay for hosting that does have Python 2.4.3 installed, but no Numpy/Scipy. I don't have shell access via command line, either. Just drag-and-drop FTP. Pretty limited, but I can get simple Python/CGI scripts working.</p>
  
  <p>Surprisingly, a web search revealed few suitable options for web hosting with these capabilities already built in. (Please guide me if I am wrong.) I am learning about the Google App Engine, but I still don't have a full understanding about its tools and limitations. What the web <em>did</em> tell me is that others have similar concerns.</p>
  
  <p>Hoping for solutions, I thought I would ask these simple questions to the awesome SO community:</p>
  
  <ol>
  <li><p>Is there a simple way of installing numpy (or any third-party package/library) onto my already hosted space? I know the Python path on my hosted space, and I know the relevant Python/Numpy directories on my home computer. Can I simply copy files over and have it work? Both local and remote systems run Ubuntu.</p></li>
  <li><p>What hosting sites exist (either free or paid) which have Numpy/Matplotlib installed or, if not installed, the possibility of installing it? Are there any documented sites that you can reference with working applications, no matter how simple? </p></li>
  <li><p>Can Google App Engine help me in any way? Or is it totally for something else? Have you or others used it to write scientific applications in Python/Numpy? If so, could you reference them?</p></li>
  </ol>
  
  <p>Thank you for your help.</p>
  
  <p>EDIT: After the useful answers below, I bought the $20 plan at Slicehost, and I love it so far! (I first tried Amazon EC2. I must be stupid, but I just couldn't get it to work.) Setting up the Ubuntu server with Apache took mere hours (and I'm an Apache novice). It allows me to do exactly what I wanted with Python plus much more. I now have my own remote repository for version control, too. Thanks again!</p>
  
  <p>EDIT 2: Nearly two years later, I tried Linode and EC2 (again). Linode is great. EC2 seemed easier this time around -- maybe it's just added experience, or maybe it's the improvements that Amazon made to the AWS management console. For those interested in Numpy/Scipy/Matplotlib/Audiolab, here is my Ubuntu cheat sheet whenever I launch an EC2 instance:</p>
  
  <pre><code>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
  </code></pre>