Mac OSX 10.8.1 安装 Python2.7(Django)
August 26 2012

Mac OSX 10.8.1 默认的 Python 版本是 2.6.8,虽然 3.2 出来已经有较长时间了,但现主流的版本仍然是 2.X 系例版本,我这里升级为 2.7.3 版本,其对应的 Django 版本为 1.4.1。

环境准备
Python安装

以上环境安装好之后,即可通过 brew 安装 pyhton:

$ brew install readline sqlite gdbm
$ brew install python --universal --framework

安装完成后,需要设置链接(Symlinks):

$ mkdir ~/Frameworks
$ ln -s "/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework" ~/Frameworks
$ ln -s /usr/local/Cellar/python/2.7.3/bin/python2.7 /usr/local/bin/python2.7

安装 pipVirtualenv & Django:

$ /usr/local/share/python/easy_install pip
$ /usr/local/share/python/pip install --upgrade distribute
$ /usr/local/share/python/pip install virtualenv
$ /usr/local/share/python/pip install virtualenvwrapper
$ /usr/local/share/python/pip install django

配置环境,编辑 ~/.bashrc,添加如下内容后执行 source ~/.bashrc

alias python="python2.7"

# Before other PATHs...
PATH=${PATH}:/usr/local/share/python

# Python
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python2.7
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'
export PIP_VIRTUALENV_BASE=$WORKON_HOME
export PIP_RESPECT_VIRTUALENV=true
if [[ -r /usr/local/share/python/virtualenvwrapper.sh ]]; then
source /usr/local/share/python/virtualenvwrapper.sh
else
echo "WARNING: Can't find virtualenvwrapper.sh"
fi

由于 Terminal 在启动时加载的用户配置并非 .bashrc,而是 ~/.bash_profile,所在还需要在 ~/.bash_profile 加入 [ -r ~/.bashrc ] && source ~/.bashrc 语句。

接着运行 python --version 查看当前版本,如果一切正常则会显示 2.7 的版本号。可安装 ipyhton 来验证 django 是否安装正确:

> import django
> print django.get_version()
1.4.1

环境配置好后,如果直接启动 Django 项目,会提示如下错误:

denger@Macbook apiworks$ python manage.py runserver
Traceback (most recent call last):
File "manage.py", line 8, in <module>
from django.core.management import execute_from_command_line
ImportError: No module named django.core.management

原因是 manage.py 的第一行代码中, #!/usr/bin/env python 使用的是默认的环境,而默认的环境下的 python 并非 2.7, 其环境下也没有 django 模块,所以提示如上错误。

解决以上问题有很多方法,最好的方法是通过 virtualenv 虚拟一个开发环境,即在任意目录下执行以下命令:

$ virtualenv dev-env # 可产生一个干净的 python 环境
$ cd dev-env
$ source bin/activate # 激活环境
(dev-env)$ pip install django # 重新在该环境下安装 django

在虚拟环境下安装 django 之后,进入 project 目录下便可正常启动 django 服务 python manage.py runserver。当然,如果想回到系统默认环境的话只需要运行 deactivate 即可。