上次看到django 1.5发布了,支持python 3.2或者更新的版本,于是就想在python 3上试一下django。
原本系统是centos 6.3,通过sudo yum update升级到了6.4
$ sudo yum update
安装zlib-devel
$ sudo yum install zlib-devel
为什么需要安装这个呢?如果不安装的话,在安装python 3的时候不会编译zlib模块,在创建django项目的时候,会提示:ImportError: No module named ‘zlib’。所以为了避免重新编译安装python 3,先安装了吧。
安装python 3.3
在官网下载python 3.3版本源码:
$ wget http://www.python.org/ftp/python/3.3.0/Python-3.3.0.tar.bz2
大家可以自行在官网上找到相应python的下载地址。
下载完成后解压安装:
$ tar -jxv -f Python-3.3.0.tar.bz2 $ cd Python-3.3.0 $ ./configure $ make $ sudo make install
这边configure并没有设置什么参数,python都已经帮我们想好了,不会和系统自带的python 2.6版本起冲突。
安装的过程非常顺利,并没有碰到一些奇怪的问题。如果没有安装编译环境,安装下gcc和make就可以了,可以直接使用yum安装。
$ yum install gcc make
安装django 1.5
从官网下载django 1.5
$ wget http://www.djangoproject.com/m/releases/1.5/Django-1.5.tar.gz
django 1.5才支持python 3,所以如果要在python 3上跑,就只能下载1.5的版本。
解压安装:
$ tar -zxv -f Django-1.5.tar.gz $ cd Django-1.5 $ sudo ptyhon3 setup.py install
这里使用sudo安装时出现了一些问题,提示:sudo: python3: command not found,这个和sudo命令本身有关。可以暂时先不管,先切换成root账号安装就可以了。
$ su root $ python3 setup.py install
安装完成后,看下django的版本:
$ python3 -c "import django; print(django.get_version())" 1.5
如果看到输出1.5就表示执行成功了。
创建django项目
$ django-admin.py startproject mysite
如果上面没有安装zlib_devel,这里会提示:ImportError: No module named ‘zlib’,没有zlib模块。只能安装zlib-devel后,重新编译安装python 3。
让项目运行起来,在浏览器里进行访问。
$ cd mysite $ python3 manage.py runserver 0.0.0.0:8000
其中0.0.0.0:8000表示可以在其他电脑上进行访问,如果不加参数,默认只能在本机上进行访问。
测试机器是服务器版的,没有桌面,所在在局域网的其他电脑上进行访问:
http://192.168.2.133:8000/

django运行截图
如果出现不能访问的情况,先关闭防火墙试试:
$ sudo /etc/init.d/iptables stop
如果要在服务器版上进行访问,可以使用elinks文字浏览器。
$ elinks http://127.0.0.1:8000/
小结
到这里python 3.3和django 1.5就算安装完成了,虽然django 1.5支持python 3,但是很多类库还不支持python 3,例如PIL等,所以用python 3开发项目估计还需要一段时间。