如何在 Windows 上安装 Django

本文是安装在 Windows 上安装 Python 3.8 和 Django 的指南。同时也提供了关于配置虚拟环境的介绍,它们使得编写 Python 工程变的非常简单。这是为从事 Django 项目的用户提供的入门指南,而介绍为 Django 本身开发补丁时该如何安装 Django。

指南中的下列步骤已在 Windows 10上测试通过。其它版本上,步骤类似。你需要熟悉如何使用 Windows 的命令提示符。

安装Python

Django 是一个 Python Web 框架,因此需要在您的机器上安装 Python。在本文撰写时,Python 最新的版本是 3.8。

想将 Python 安装在你的机器上,可以到 https://python.org/downloads/ 这个网址。这个网站将为你提供一个下载按钮来下载最新的 Python 版本。下载可执行程序安装包并运行它。然后勾选 为所有用户安装快捷方式(推荐) 接着点击 开始安装

安装后,打开命令提示符,检查 Python 版本是否与你装的一致,通过运行:

  1. ...\> py --version

参见

想知晓更多细节,请查看 Using Python on Windows 文档。

关于 pip

pip 是 Python 的包管理器并且默认就在Python安装包里。它使得 Python 包(例如 Django)的安装和卸载变的非常简单。剩下的安装流程中,我们会用 pip 从命令行安装 Python 包。

配置一个虚拟环境

最佳实践是为你创建的每一个Django项目创建一个独立的环境。在Python生态系统中有许多可以用来管理环境和包的可选工具,一些在 Python documentation 被推荐过。我们将会在这份指南中使用Python本身自带的 venv 来管理环境。

要为你的项目创建一个虚拟环境,打开新的命令行窗口,转至你想创建项目的文件夹,然后输入如下命令

  1. ...\> py -m venv project-name

这样就会创建一个名字为“project-name”文件夹并且设置好相应的虚拟环境。为了激活环境,请执行如下命令

  1. ...\> project-name\Scripts\activate.bat

虚拟环境就会激活,并且你会在命令提示符旁边看到 “(project-name)” 指向该环境。每次你打开新的命令行窗口,你需要再次激活环境。

安装 Django

Django 可以轻松地在你的虚拟环境中使用 pip 安装。

在命令提示行中,确认虚拟环境是激活的,然后运行以下命令:

  1. ...\> py -m pip install Django

这将下载并安装最新的 Django 发布版本。

安装完成后,你可以在命令提示符运行 django-admin --version 验证你安装的 Django。

参考 数据库安装 了解如何通过 Django 安装数据库。

Colored terminal output

New in Django Development version.

A quality-of-life feature is to output colored (rather than monochrome) output on the terminal. This should work both on CMD and PowerShell. If for some reason this needs to be disabled, set the environmental variable DJANGO_COLORS to nocolor.

To enable this, colorama must be installed:

  1. ...\> py -m pip install colorama

See 语法着色 for more information on color settings.

常见失误

  • django-admin 无论输入啥参数都只显示帮助信息,这可能是一个 Windos 的文件关联问题。检查 PATH 中是否不止一个用于运行 Python 脚本的环境变量。该问题通常在安装了多个 Python 版本时出现。

  • 若你通过代理来连接互联网,运行命令 pip install Django 时可能会出现问题。在命令提示符中为代理配置如下环境变量:

    1. ...\> set http_proxy=http://username:password@proxyserver:proxyport
    2. ...\> set https_proxy=https://username:password@proxyserver:proxyport