================================
How to install Django on Windows
================================

.. highlight:: doscon

This document will guide you through installing Python 3.7 and Django on
Windows. It also provides instructions for installing `virtualenv`_ and
`virtualenvwrapper`_, which make it easier to work on Python projects. This is
meant as a beginner's guide for users working on Django projects and does not
reflect how Django should be installed when developing patches for Django
itself.

The steps in this guide have been tested with Windows 7, 8, and 10. In other
versions, the steps would be similar. You will need to be familiar with using
the Windows command prompt.

Install Python
==============

Django is a Python web framework, thus requiring Python to be installed on your
machine. At the time of writing, Python 3.7 is the latest version.

To install Python on your machine go to https://python.org/downloads/. The
website should offer you a download button for the latest Python version.
Download the executable installer and run it. Check the boxes next to ``Install
launcher for all users (recommended)`` and ``Add Python 3.7 to PATH`` then
click ``Install Now``.

After installation, open the command prompt and check that the Python version
matches the version you installed by executing::

    ...\> py --version

.. seealso::

    For more details, see :doc:`python:using/windows` documentation.

About ``pip``
=============

`pip`_ is a package manage for Python. It makes installing and uninstalling
Python packages (such as Django!) very easy. For the rest of the installation,
we'll use ``pip`` to install Python packages from the command line.

To install pip on your machine, go to
https://pip.pypa.io/en/latest/installing/, and follow the ``Installing with
get-pip.py`` instructions.

.. _pip: https://pypi.org/project/pip/

.. _virtualenvwrapper-win:

Install ``virtualenv`` and ``virtualenvwrapper``
================================================

`virtualenv`_ and `virtualenvwrapper`_ provide a dedicated environment for
each Django project you create. While not mandatory, this is considered a best
practice and will save you time in the future when you're ready to deploy your
project. To do this, run::

    ...\> py -m pip install virtualenvwrapper-win

Then create a virtual environment for your project::

    ...\> mkvirtualenv myproject

The virtual environment will be activated automatically and you'll see
"(myproject)" next to the command prompt to designate that. If you start a new
command prompt, you'll need to activate the environment again using::

    ...\> workon myproject

.. _virtualenv: https://pypi.org/project/virtualenv/
.. _virtualenvwrapper: https://pypi.org/project/virtualenvwrapper-win/

Install Django
==============

Django can be installed easily using ``pip`` within your virtual environment.

In the command prompt, ensure your virtual environment is active, and execute
the following command::

    ...\> py -m pip install Django

This will download and install the latest Django release.

After the installation has completed, you can verify your Django installation
by executing ``django-admin --version`` in the command prompt.

See :ref:`database-installation` for information on database installation
with Django.

Common pitfalls
===============

* If ``django-admin`` only displays the help text no matter what arguments
  it is given, there is probably a problem with the file association in
  Windows. Check if there is more than one environment variable set for
  running Python scripts in ``PATH``. This usually occurs when there is more
  than one Python version installed.

* If you are connecting to the internet behind a proxy, there might be problems
  in running the command ``py -m pip install Django``. Set the environment
  variables for proxy configuration in the command prompt as follows::

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