Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

I would love to start learning python by setting up a little website, and for that I need hosting. What should I look for in a hosting provider to be sure I can use python?

EDIT: to be complete: I don't want a list of hosting companies, but I want to know what I should look for.

Of course I can take the first host which mentions 'Python' in its specs, but I want to be sure I can really use it, and not only the basic things... Problem is I don't know much about python, so it's difficult to know what I'm looking for...

share|improve this question
    
If you start learning why do you need/want a hosting provider you have to pay for? –  Server Horror Jun 10 '09 at 11:31

16 Answers 16

If you're looking for somewhere to host a site using a Python framework - Django, Pylons, Turbogears - you can't go wrong with Webfaction - they specialise in that sort of thing, and have one-click installers for all the major frameworks.

You don't get as much space/bandwidth as you would for the same money with Dreamhost, but for a small site that probably doesn't matter. And you do get excellent support.

share|improve this answer
1  
+1 for Webfaction - their support is beyond brilliant. Several times now they've helped me track down mistakes I've made which I'd wrongly assumed were down to them. They're quick to respond and courteous too. –  Dominic Rodger Jun 3 '09 at 15:34
1  
+1 Webfaction rocks. I'd like to remind it used to be python-hosting.com. –  muhuk Jun 3 '09 at 18:50
    
I like Webfaction a lot. Sadly my personal projects don't really draw any traffic so I can't comment on how performant they are, but I really have been satisfied with the amazing support they offer and the easy admin tools. –  TM. Oct 16 '09 at 4:43

Have you considered Google App Engine?

  • It's free for sites with low bandwidth usage.
  • Minimal setup required, so it's easy to get started.
  • As you advance, you can move to using some of the Django framework's functionality. Django is a popular platform for developing Python web apps.

The only caveat I can think of is that some of the lower level Python libraries are not supported, for security reasons.

Finally, Eucalyptus appears to be a portable solution to App Engine so you aren't tied in to Google's service should you want to migrate later. (ref)

share|improve this answer
    
Support might be a problem with Google, I seem to recall a blog about this. I don't have any direct experience, but it would be good to search out someone who does. –  Mark Ransom Jun 3 '09 at 17:34

Here is what I would look for:

  • Linux server
  • Python pre-installed
  • Apache setup supporting all of the following:
    • mod_wsgi
    • cgi
    • mod_python
  • ssh access
  • Ability to install your own add-on libraries.

This will give you the freedom to experiment with multiple ways of building and deploying a website using python. You may have to go with a VPS to get all of this, but that's better for learning anyway. The more control you have, the more things you can break and learn how to fix. The ability to reload a good base image is also helpful when things get too screwed up in the learning process.

share|improve this answer
    
+1 for actually answering the question asked. –  Robert Rossney Jun 3 '09 at 18:39

I would guess you want to look for a Virtual Private Server or Virtual Machine with root access.

In my (commercial) opinion, hosting technologies either fall into the category of a "completely standardized" hosting environment (e.g. Apache/mod_php for PHP) or they don't. Lots of companies provide PHP hosting in exactly the same way. But for most newer hosting platforms like Python and Ruby - they don't, and so hosts have to go to a lot more work and domain expertise to make particular hosting environments for those languages.

Therefore if you shop for a Python-specialising host, you ought to find a much more clued-in host than one selling PHP hosting. However I would expect you'd have to pay more for that rarer expertise. The risk is that you get something a bit more half-baked or very specific to a particular host, which makes your deployment less portable should you want to move.

Instead if you shop for a VPS / Virtual Machine you will get a product that is broadly similar across thousands of hosts - root access, bandwidth, disc space, and the ability to install the exact software, versions and modules you want. You may have to learn a bit more to set this kind of thing up, but you won't have to submit to one hosting company's idea of what a "standard" Python environment is. Make your own environment, one that fits your application, and you'll have the pick of many more companies.

I may be overstating the case for VPS slightly, as I'm thinking more about past horrors of Rails deployment, where I have specific experience :)

share|improve this answer

A (slightly biased and self-interested) post to recommend "Platform-as-a-Service" offerings, like:

  • Heroku the original Ruby PaaS, now support Python and many other languages
  • DotCloud who are behind the exciting Docker containerization thing
  • Gondor.io who are Python + WSGI focused
  • PythonAnywhere my employer, and the best of all, naturally.

All the PaaS offerings pitch the same broad idea: "You don't want to have to worry about server administration, security patches, scaling, load balancing, all that sysadmin stuff. Let us take care of that, and leave you to do the interesting work of building the best app for your users". Essentially, you trade off some of the flexibility you get from building and running your own servers, in exchange for saving lots of time and pain.

We like to think we make it the easiest of all, particularly for beginners. We aim to be really helpful with support requests, and we have a full browser-based IDE -- so you can actually do all your development via the site without having to install python locally, if you want to. But I'm in danger of drifting too far into marketing here, so i'll stop.

Hope it helps someone out there!

share|improve this answer

Do you have to host it on the internet? Wouldn't it be easier to do your tests and whatnot on an internal server?

share|improve this answer
1  
comment != answer –  Henrik Jun 3 '09 at 15:18
    
Agreed. I have done this with both Linux (official Red Hat and CentOS) and on Windows (with WAMP - that took a little research and work; unfortunately I don't recall the URL's which helped me, but Google found them for me). Once set up, just send your browser to localhost/AppropriatePathName –  PTBNL Jun 3 '09 at 15:22

This URL from the Django website gives you a plethora of options.

share|improve this answer

App Engine is the mutts nuts. Use it.

http://www.diveintopython.org/ is great too.

web.py is nearly as simple as app engine for getting started with python web apps. Not quite as well impemented though.

Did I mention that app engine is great?

share|improve this answer
    
Great suggestion for Dive into Python. A great book for learning python. –  GNUix Jun 10 '09 at 11:25

Honestly, anything that supports mod_wsgi should do. Everything else (server software, config, etc.) depends on what you need/want, and is therefore up to you.

share|improve this answer

If you want a guarantee a host is going to support everything you want it to in terms of software, you're best off looking into getting a dedicated server or a VPS (I recommend Linode). Or do your development locally, there are many good guides on how to set various things up, especially with a popular language like python. Learning how to set python up would be a good experience alongside learning the language itself.

share|improve this answer

Most hosting providers have a list of supported server side technologies. Just look for python on that list. From what I have seen, most unix providers support python.

share|improve this answer

nearlyfreespeech support python and as far as I can find are the cheapest option for a low bandwidth, low web space site. However they don't support django if you wanted to use that. Another low cost option that supports python is angry hosting.

share|improve this answer
1  
Unfortunately nearlyfreespeech doesn't support long running processes. WSGI is standart for Python. –  muhuk Jun 3 '09 at 18:57

http://www.dreamhost.com/hosting-features.html Dreamhost is IMO one of the best hosts out there and they support python.

share|improve this answer
1  
Some pretty harsh negative comments about dreamhost at reddit.com/r/programming/comments/747gk/… - a few positive ones too though... –  danio Jun 3 '09 at 15:04
2  
Dreamhost is okay for beginner Python, but it's terrible if you want to use it for any heavyweight site, as they don't support either mod_python nor mod_wsgi. (wiki.dreamhost.com/Python) –  Daniel Lew Jun 3 '09 at 15:05
    
Hi Daniel, that's exactly why I asked the question. Of course I can take the first host which mentions 'Python' in its specs, but I want to be sure I can really use it, and not only the basic things... Problem is I don't know much about python, so it's difficult to know what I'm looking for... –  Fortega Jun 3 '09 at 15:09

I would recommend Server Axis for a VPS. Of course if you're learning then simply setup something on your box at home. If you are running GNU/Linux you can download a framework like Django that has a built-in testing server you can play with or you can setup any HTTP server (Apache, Cherokee, Nginx (Engine-X), etc) as long as it supports either WSGI interface (preferable IMHO) or mod_python.

share|improve this answer

If you are comfortable with setting up the server, I would look into a VPS host. The flexibility of being able to select the components you want to use greatly outweighs the inconvenience of having to maintain the OS on your own.

share|improve this answer
    
Also a great learning tool to have your own VPS that you can tinker with. You'll bang your head a lot when you break something and have to fix it yourself, but the learning experience is invaluable. –  Tom Jun 3 '09 at 16:31

I'd go with , in this order:

Linode.com

Slicehost.com

Set up your own little VPS and wield the might of root. If you are going to pay for hosting, why would you not want root?

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.