14

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...

1
  • If you start learning why do you need/want a hosting provider you have to pay for? Jun 10, 2009 at 11:31

15 Answers 15

8

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.

3
  • 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. Jun 3, 2009 at 15:34
  • 1
    +1 Webfaction rocks. I'd like to remind it used to be python-hosting.com.
    – muhuk
    Jun 3, 2009 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, 2009 at 4:43
8

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.

0
8

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)

1
  • 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. Jun 3, 2009 at 17:34
5

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!

3

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 :)

1

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.

1

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

1

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?

1
  • Great suggestion for Dive into Python. A great book for learning python.
    – GNUix
    Jun 10, 2009 at 11:25
1

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.

1

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.

0

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.

1
  • 1
    Unfortunately nearlyfreespeech doesn't support long running processes. WSGI is standart for Python.
    – muhuk
    Jun 3, 2009 at 18:57
0

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

3
  • 1
    Some pretty harsh negative comments about dreamhost at reddit.com/r/programming/comments/747gk/… - a few positive ones too though...
    – danio
    Jun 3, 2009 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, 2009 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, 2009 at 15:09
0

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.

0

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.

1
  • 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, 2009 at 16:31
0

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?

You must log in to answer this question.