mod_wsgi, mod_python, or just cgi?

Question:

I’ve been playing around with my own webserver (Apache+Ubuntu) and python. From what I’ve seen there are 3(?) main ways of doing this:

  1. Apache configured to handle .py as cgi
  2. Apache configured to use mod_python that is now outdated(?)
  3. Apache configured to use mod_wsgi

I recall reading that Django prefers mod_wsgi, and I’m kinda interested in learning Django (I’ve heard their official tutorial is rather excellent).

What is the ‘recommended’ setup? I presume there’s really no reason to use mod_python anymore, but what are the differences between handling .py as cgi, and mod_wsgi? Is it possible to run them in tandem (and would you want to?), or is that just a ridiculous idea and I should stop thinking such crazy things?

I guess really I’m just looking for a primer on Apache+Python (links are also good) – nothing I’ve come across so far has been terribly informative – they were mainly just how-to’s.

Asked By: Wayne Werner

||

Answers:

  1. Don’t use CGI. It’s inefficient. Spawning a new process for each request. No thanks

  2. Dont’t spend much time with mod_python

  3. Use mod_wsgi.

If you want to write CGI-like stuff without a framework, use mod_wsgi anyway. The WSGI standard (PEP 333) is essential for creating web applications in an easy, interchangeable, reusable, plug-and-playable way.

Answered By: S.Lott

mod_python is dead, so using mod_python probably isn’t a good idea for new projects. Personally, I prefer to use mod_wsgi over CGI (or FastCGI). It’s dead-simple to set up, and much more efficient.

Answered By: mipadi

I would go with mod_wsgi too.

If you want a deeper understanding about the question, have a look at this:

Good stuff!

Answered By: ssoler

Mod_Python

mod_python is alive and well. See here: http://modpython.org/. Furthermore, here’s the documentation for the latest release, 3.5.0, with support for Python 3: http://modpython.org/live/current/modpython.pdf. Currently I use it.

Mod_WSGI

mod_wsgi thinks of itself as not to be used barebones, but with a framework, such as Flask.

Answered By: cptaffe
Categories: questions Tags: , , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.