ubuntu 9.04自带的Python是2.6的。
首先是安装django的python脚本,去django的官网下的1.1版的源码,下载以后解压,安装,没有什么问题。
然后是安装apache2。我之前是直接用apt-get install apache2。这本身没什么问题,但到后面安装mod_python的时候就出问题了,mod_python安装(DSO的方式)需要指定apxs的路径,而事实上,用apt-get的方式安装的apache2是不包含这个程序的。所以,还得用apt-get remove apache2把它先删掉,再下载源代码,编译安装。
我下的是2.2.14,解压后
./configure
make
sudo make install
很顺利。
接下来是装mod_python,我下载的是3.3.1的源码,按照它自带的帮助文档,用这个命令:
./configure --with-apxs=/usr/local/apache2/bin/apxs --with-python=/usr/bin/python2.6
但是出错:
configure: error: This version of mod_python only works with Python major version 2. The one you have seems to be .
不知道怎么回事。觉得很困惑。如果我用2.6的Python开发,总不能指定旧版本的python来安装mod_python吧?
后来,看到网上有人用apt-get install libapache2-mod-python2.5,于是我把2.5改成了2.6,竟然也可以。真是神奇。
这样的话,也许先前安装apache也不需要从源码安装了。
然后是mysql和python for mysql.
安装mysql很容易,直接apt-get install mysql-server
而python for mysql,即mysqldb。这个对2.6的python看起来有点麻烦。网上说最高只支持到2.5。不过其实也不必这么麻烦。apt具有超级牛力,它都帮你搞定了:
apt-get install python-mysqldb
接下来的,就可以按照django的tutorial走了。
不过在根据tutorial做的时候,在创建polls的model时,会提示有warning.
需要找到它所提示的两个文件(我的在/var/lib/python-support/python2.6/MySQLdb目录下)
一个是__init__.py,把34行 from Set import ImmutableSet (忘了,大概是这名字)删掉,然后把下面的ImmutableSet改成frozenset。
2,converter.py,把129行前面的Set=Set2Str改成set=Set2Str.
from sets import BaseSet, Set(我电脑上是37行)
这一行也会给warning。把它注掉,在下面添加一行:
Set = set;
如果还有warning,就找到那一行把它删掉。