Python的Django的配置过程

来源:互联网 发布:java教程 菜鸟教程下载 编辑:程序博客网 时间:2024/06/03 19:29

安装 Python

作为一个 Python 的 Web 框架, 使用 Django 前需要先安装 Python 。

在 Python 2.4 至 2.7 版本下,Django 都可以使用。(由于 Python 3.0 是不向后兼容 的,所以 Django 目前无法在 Python 3.0 下使用;更多关于支持的 Python 版本和 3.0 迁移的内容,参见 Django FAQ 。)

在 http://www.python.org 可以得到 Python 。如果你的操作系统是 Linux 或 Mac OS X ,那么可能 Python 已经安装在系统中了。

Django on Jython

如果你使用 Jython (一个 Java 平台上的 Python 实现),你将要做一些额外的 步骤。详见 Running Django on Jython 。

安装 Apache 和 mod_wsgi

如果你只是想体验一下 Django ,那么请跳过本节直接阅读下一节。因为 Django 本身 包含一个可用于测试的轻型 Web 服务器,所以在你要把 Django 部署到生产环境之前你 不需要安装 Apache 。

如果你想在生产环境下使用 Django ,那么请使用带有 mod_wsgi 的 Apache 。 mod_wsgi 可以在两种模式之下工作,一种模式是内嵌模式,另一种是守护进程模式。在 内嵌模式下, mod_wsgi 与 mod_perl 类似,它把 Python 嵌入 Apache 并且在服务器 启动时把 Python 代码载入内存。在 Apache 进程的生存周期内,代码始终留在内存内, 相比其他方式,这样可以获得显著的性能提升。在守护进程模式下, mod_wsgi 产生一个 处理请求的独立守护进程。这个守护进程可以与 Web 服务使用不同用户运行,这样可能 可以提高安全性。并且可以在不重启 Apache Web 服务的情况下重启守护进程,便于无缝 更新代码。请查阅 mod_wsgi 文档来决定使用哪种模式。请确保 Apache 已安装,并且 mod_wsgi 模块是可用的。 Django 可以在支持 mod_wsgi 的任何版本 Apache 下工作。

安装完 mod_wsgi 后如何配置 mod_wsgi ,请参考 See 如何通过 mod_wsgi 使用 Django 。

如果因为某种原因你无法使用 mod_wsgi ,不用担心。 Django 支持其他多种部署方式。 另一个选择是 FastCGI ,可以在非 Apache 服务器完美使用 Django。另外 Django 遵循 WSGI 标准,可以运行于多种不同 的服务器平台。相应平台的安装方法参见 在多种平台安装 Django 。

让你的数据库运行起来

如果你要使用 Django 数据库 API ,那么先要让你的数据库运行起来。 Django 支持 多种不同的数据库并且官方支持PostgreSQL 、 MySQL 、 Oracle 和 SQLite (虽然 SQLite 不需要运行一个独立的服务)。

除了官方支持的数据库外,还有一些可通过第三方软件支持的数据库:

  • Sybase SQL Anywhere
  • IBM DB2
  • Microsoft SQL Server 2005
  • Firebird
  • ODBC

但是这些第三方支持的 Django 的版本和 ORM 功能差别很大。如果你对这些第三方支持的 功能或品质有疑问的话,请直接向这些第三方项目提问。

所了让数据库运行外,你还要确定安装好这些数据库相应的 Python 库。

  • 如果你使用 PostgreSQL ,你需要 psycopg 包。 Django 既支持版本 1 也支持版本 2 。(当你定义 Django 的数据库层时,可以定义 postgresql [用于版本 1 ], 也可以定义 postgresql_psycopg2 [用于版本 2] 。)关于这种数据库的更深层的 技术细节你可能需要参考 PostgreSQL notes 。

    如果你使用 Windows ,可以试试非官方的 编辑好的 Windows 版本 。

  • 如果你使用 MySQL ,你需要 1.2.1p2 或更高版本的 MySQLdb 。同时你还要读一下 关于 MySQL 数据库的注意点 。

  • 如果你使用 SQLite 并且使用 Python 2.4 ,你需要 2.0.3 或更高版本的 pysqlite 。 Python 2.5 把 SQLite 作为标准模块内置了,所以就不需要安装其他 额外的东西了。请参阅 SQLite 数据库注意点 。

  • 如果你使用 Oracle ,你需要 cx_Oracle 。但请先阅读, Oracle 数据库 的注意事项,重点了解支持的 Oracle 和cx_Oracle 的版本。

  • 如果你使用一个非官方支持的数据库,请阅读相关文档,了解额外的需求。

如果你计划使用 Django 的 manage.py syncdb 命令来自动创建数据库的表,请先 确定在你的数据库中 Django 拥有创建和改变表的权限。如果你计划手动创建表,那么 Django 只要有 SELECT 、 INSERT 、 UPDATE 和 DELETE 权限就可以 了。在一些数据库中, Django 在执行 syncdb 时需要 ALTER TABLE 权限,但是 创建完表以后就不需要了。

如果你使用 Django 的 测试框架 来测试数据库查询,那么 Django 需要创建测试数据库的权限。

删除任何旧版本的 Django

如果你是升级 Django ,那么安装前应当先删除旧版本的 Django 。

如果你以前使用 setup.py install 安装 Django ,那么删除旧版本就非常简单—— 只要删除你的 Python 目录下site-packages 中的 django 目录就可以了。

如果你是以 Python egg 方式安装的 Django ,那么请删除 Django 的 .egg 文件, 并移除 easy-install.pth 文件中相应的 egg 引用。这个文件同样在你的 site-packages 目录中。

我的 site-packages 在哪里?

site-packages 目录的位置根据操作系统的不同而不同。它位于 Python 的安装 目录下。以下命令可以找到你的 site-packages 目录位置:

python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"

(注意,这个命令应当在终端命令行下执行,而不是在一个 Python 交互命令行下 执行。)

安装 Django

用于安装的 Django 代码一般有三种:特定发行包、最新官方包和最新开发版本。三种 代码的安装方法有少许不同。

但是,不管哪种都是容易安装的。

安装特定发行包

请查看 特定发行说明 中是否提供你的平台(发行版本) 下的官方 Django 包(安装器)。特定发行包通常会自动安装相关依赖的库并更新路径。

安装官方发行版本

  1. 从我们的 下载页面 下载最新版本。
  2. 解压缩下载的文件(文件名形如 tar xzvf Django-NNN.tar.gz ,其中的 NNN 表示版本号)。你如果使用的操作系统是 windows ,那么你可以下载 命令行工具 bsdtar 或使用 7-zip 之类的图形界面工具来解压缩文件。
  3. 进入上个步骤所创建的目录(如 cd Django-NNN )。
  4. 如果你使用的是 Linux 、 Mac OS X 或其他类 Unix 操作系统,那么在终端中 输入命令:sudo python setup.py install 。如果你使用的是 Windows 操作系统,那么以管理员身份打开的一个命令窗口,运行 setup.py install 。

以上命令会把 Django 安装到你的 Python 安装目录中的 site-packages 目录中。

安装最新开发版本

追踪 Django 开发

如果你决定使用 Django 的最新开发版本,那么你需要关心 开发进度 和 向后 兼容变化列表 。这样你才能掌握最新的功能和升级时变动相应的代码。(对于官方 发行版本来说,所有必要的内容都写在发行说明中。)

如果你想因为缺陷改进和功能提升而升级你的 Django ,可按以下步骤操作:

  1. 确认你已经安装了 Subversion ,并且可以在命令行下运行。(在命令行下运行 svn help 可以测试这个。)

  2. 通过如下命令检出 Django 的主开发分支( 'trunk' ):

    svn co http://code.djangoproject.com/svn/django/trunk/ django-trunk
  3. 接下来,确认 Python 解释器可以载入 Django 代码。最方便的方法是 修改 Python 的搜索路径 。把一个包含django-trunk 路径的 .pth 文件 到你系统的 site-packages 目录。例如在一个类 Unix 系统中可以

    echo WORKING-DIR/django-trunk > SITE-PACKAGES-DIR/django.pth

    (在上面的命令中,把 SITE-PACKAGES-DIR 替换为你系统的 site-packages 目录,即前文 我的 site-packages 在哪里? 一节 中提到的目录。把 WORKING-DIR/django-trunk 变为你的新 django-trunk 路径。)

  4. 在类 Unix 系统中,在系统路径所包含的目录(如 /usr/local/bin )下创建一个 指向django-trunk/django/bin/django-admin.py 文件的符号链接。例如:

    ln -s WORKING-DIR/django-trunk/django/bin/django-admin.py /usr/local/bin

    (在上面代码中,把 WORKING-DIR 变为你的新 django-trunk 路径。)

    这样便于你在任何目录下都可以运行 django-admin.py ,而不用输入完整的路径。

    在 Windows 系统中,如果要实现同样目的,那么要把 django-trunk/django/bin/django-admin.py 文件复制到系统路径所包含的目录中, 例如 C:\Python24\Scripts 。

你 不必 运行 python setup.py install ,因为在第 3 步和第 4 步中你所做的 操作相当于运行了这个命令。

当你想要升级 Django 的源代码时,只要在 django-trunk 目录中运行 svn update 命令就行了。这个命令会自动下载任何更新的内容。


Django mod_wsgi 配置


这几天花了点时间学习把Django开发好的项目部署到Apache上,感觉官方的一些文档说得很不清楚,花了我比较多的时间,这里把我自己配置的过程说一下。注意一下,我这里的配置的环境是Windows,版本情况:Apache 2.2,Django 1.1,Mod_wsgi 3.1,Python 2.6。不同版本的配置方法大同小异。

 

  一、演示环境

  这里假设您的Django和Apache已经安装好,并且Django的工程已经开发好。下面是我自己的相关目录位置,您需要参照您的实际目录。

  • 我这里Apache安装在 C:\Program Files\Apache Software Foundation\Apache2.2 。
  • 我的工程的目录是 D:\WorkSpace\DjangoProject\FirstProject,工程名称叫 FirstProject 。

 

  二、下载mod_wsgi文件

  mod_wsgi可以去http://code.google.com/p/modwsgi/downloads/list这里下载,选择您需要的版本,下载下来后,是一个名字为mod_wsgi*****.os的一个文件。把这个文件重命名为mod_wsgi.os,然后放到Apache的moduls目录下目录下,对于我这里的情况,就是放到 C:\Program Files\Apache Software Foundation\Apache2.2\modules 这个目录下。放到这个目录下后,就算安装完毕了。

 

注意,不同版本的的mod_wsgi对于python的版本是有要求的,比如这里的mode_wsgi 3.1 就需要python 2.6+的相关版本。如果用python 2.5及以下的版本,就算配置好了,也无法启动Apache,而在EventViewer里面可以查看Apache给出的错误信息,大概如下:
  "httpd.exe: Syntax error on line 128 of C:/data/apache/conf/httpd.conf: Cannot load C:/data/apache/modules/mod_wsgi.so into server: The specified module could not be found.     . "

 

  三、配置

  首先需要去更改Apache的httpd.conf(C:\Program Files\Apache Software Foundation\Apache2.2\conf目录下)配置文件:

  1)在配置文件中LoadModule的那一段,添加一行如下:

    LoadModule wsgi_module modules/mod_wsgi.so

 

  2)然后再添加一行如下:

    WSGIScriptAlias / "D:/WorkSpace/DjangoProject/FirstProject/django.wsgi"

  注意上面的目录D:/WorkSpace/DjangoProject/FirstProject,这个就是您的工程的目录,需要根据的实际情况做修改。后面的django.wsgi这个文件是需要新建的,后面我再来说这个如何新建这个文件。

 

  3)找到Directory的配置区域,添加如下的一段配置

    <Directory "D:/WorkSpace/DjangoProject/FirstProject">
      Order Deny,Allow
      Allow from all
    </Directory>

  注意,上面的目录,这个同上面的一样,是您的工程的目录,根据您的实际情况做修改。

 

  4)新建一个wsgi文件。

    在工程的目录下新建一个django.wsgi,用记事本打开,输入以下的内容并保存: 

      import os
      import sys

      import django.core.handlers.wsgi

      sys.path.append(r'D:\WorkSpace\DjangoProject')
      os.environ['DJANGO_SETTINGS_MODULE'] = 'FirstProject.settings'
      application = django.core.handlers.wsgi.WSGIHandler()

    解释一下第4、5两行:

    第四行中的 D:/WorkSpace/DjangoProject 是您的工程目录D:/WorkSpace/DjangoProject/FirstProject 的上一层目录。根据您工程的目录情况做修改。

    第五行 os.environ['DJANGO_SETTINGS_MODULE'] = 'FirstProject.settings' ,这个FirstProject.settings就是指您的工程目录下的setting文件,根据您的工程目录名称的不同需要做修改。

    最后,这个django.wsgi文件名可以随便取,例如test.wsgi、app.wsgi等等,但是一定要与2) 中的那行配置保持一致。如果您这里新建的文件名不是django.wsgi而是test.wsgi,那么2) 中的那行配置就应该修改为:WSGIScriptAlias / "D:/WorkSpace/DjangoProject/FirstProject/django.wsgi"。

 

  5)最后修改项目的setting.py文件。

  找到您工程目录下的setting.py,对于我这里就是D:\WorkSpace\DjangoProject\FirstProject\setting.py。找到其中的TEMPLATE_DIRS,默认为:

    TEMPLATE_DIRS = ("Template",)

  修改为如下:

    TEMPLATE_DIRS = ("D:\WorkSpace\DjangoProject\FirstProject",)

   这个D:\WorkSpace\DjangoProject\FirstProject就是您的工程目录,根据您的实际情况做相应的修改。到这里,整个配置就基本完成了。

 

  四、其它信息

    这个是关于mod_wsgi实现的一些配置命令的详细解释:http://code.google.com/p/modwsgi/wiki/ConfigurationDirectives,例如我们之前配置中的WSGIScriptAlias到底是一个什么意思等,需要的时候可以做一个参考。