Last updated on July 27, 2020
Installing Django #
To create a new Django application you must have the following things installed on your computer:
- A Virtual Environment
Note: Throughout this tutorial instructions are given for Ubuntu, Mac and Windows. Most of the commands will be same, no matter which OS you are using. However, there are a few commands which vary from one system to another. If that's the case, I have clearly mentioned it and provided commands specific to the system.
Let's start by installing Python on Windows first.
Installing Python on Windows #
Download the Python 3.5 installer from here. Once the download finishes; double click to start the installer and you will be presented a screen like this:
Tick the "Add Python 3.5 to PATH" option. This allows us to execute Python from anywhere in the directory structure without specifying the absolute path to the Python executable. To start the installation click on "INSTALL Now". The installer will then install Python on your system. Once done, click the "Finish" button to close the installer.
Testing Installation on Windows #
To test whether the Python installation was successful or not, open Command Prompt and type the following command:
1 2 3 4
C:\Users\Win>python --version Python 3.5.4 C:\Users\Win>
Python Package Manager or PIP #
In Python, we use
pip (Python Package Index) to install and manage different packages (or libraries) available at https://pypi.python.org/pypi. It is important to note that
pip itself is a package and is used to install other packages. Python installer for Windows automatically installs
pip, so you don't need to do anything else. To check the version of
pip installed on your system execute the following command.
C:\Users\Win>pip3 --version pip 9.0.1 from c:\users\win\appdata\local\programs\python\python35\lib\site-packages (python 3.5)
Installing Python on Linux #
Almost all modern Linux distributions these days comes with Python 3.5 or above installed. To check the version of Python on your distribution type the following command:
$ python3 --version Python 3.5.2
As you can see, I have Python 3.5 installed which means I am ready for the next step. If your system has Python 3.4 or 3.6, you can follow along perfectly fine without having to install Python 3.5. Remember that Django 1.11 can be used with Python 2.7, 3.4, 3.5 and 3.6.
If for some reason your distribution doesn't come with Python installed or have any old version of Python, then you will have to install Python manually. To install Python 3.5 on a Debian based system like Ubuntu type the following command:
1 2 3
$ sudo add-apt-repository ppa:fkrull/deadsnakes $ sudo apt-get update $ sudo apt-get install python3.5
If you are on a Red Hat Based system like Fedora type the following:
$ sudo dnf install python35
Unlike Windows, In Linux, you have to install
pip manually. This is true whether Python comes pre-installed with your distribution or you have installed it manually. To install
pip on a Debian based system type the following command:
$ sudo apt-get install python3-pip
pip on a Red Hat based system type the following command:
$ sudo dnf install python3-pip
Testing Installation on Linux #
In case you have installed Python manually you can use the following command to test the Python installation.
1 2 3 4 5
$ python3.5 --version Python 3.5.2 $ pip3 --version pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)
Installing Python on Mac OS #
Download the Python installer from here. After the download finishes double-click to start the installer and go through the regular installation steps. Unlike Windows, Python installer for Mac OS doesn't prompt you to add Python executable to the
PATH environment variable, instead, it will automatically do so. In addition to that Python installer for Mac also installs
pip so you don't need to do anything else.
Testing installation on Mac OS #
1 2 3 4 5
$ python3 --version Python 3.5.2 $ $ pip3 --version pip 9.0.1 from /usr/local/bin/site-packages (python 3.5)
Creating Virtual Environment with Virtualenv. #
Create a new directory named
djangobin using the
mkdir command as follows:
$ mkdir djangobin
We will use this folder to store our Django application. Our application will be a code-sharing site which allows users to create, manage and search code snippets. You can see a live example of such a site at https://djangosnippets.org.
You can create the
djangobin directory anywhere, location doesn't really matter. I am using Ubuntu and I have created this directory in my home directory. Once done, change your current working directory to
djangobin using the
cd command, as follows:
$ cd djangobin
We are now ready to create a virtual environment.
A virtual environment helps us to run isolated instances of Python/Django projects on a machine without conflicting with one another. To understand the philosophy behind Virtual Environment, consider the following example:
Let's say we are working on two projects, a blog and a forum for two different clients. Our blog uses version 2 of the
super_lib library whereas our forum uses version 1. At a given point in time, we can only have a single version of
super_lib installed on our system. We can't have both versions side by side. A Virtual Environment helps us to tackle these kinds of problems.
Think of Virtual environment as a separate Python installation. Once installed, any libraries you install there using
pip, will not conflict with the libraries available at the system-wide Python installation.
The package required to create these isolated environments is called
virtualenv on Ubuntu/Mac OS use
pip3 instead of
$ pip3 install virtualenv
virtualenv on Windows, open command prompt and type the following command.
$ pip install virtualenv
To create virtual environment type
virtualenv command followed by the name of the virtual environment. For example:
$ virtualenv env
This command will create a directory named
env inside your current working directory
djangobin). The directory structure of
env should look like this:
1 2 3 4 5
env/ ├── bin/ ├── include/ ├── lib/ └── pip-selfcheck.json
env directory contains a separate Python installation. Any libraries or packages you install here will be placed in the
env/lib/python3.5/site-packages directory instead of global
site-packages directory. You can print the path to global
site-packages using the following command:
$ python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())"
virtualenv creates a virtual environment using the version of Python under which it is installed. In other words, if you have installed
virtualenv as a package under Python 3.5, then that's the version of Python which will be available inside the virtual environment.
To specify any other version of the Python, use the
-p option as follows:
$ virtualenv env -p /usr/bin/python2.7
This will create a virtual environment using Python 2.7 instead of 3.5.
Activating Virtual Environment #
In the previous step, we have created our virtual environment. Now to use it we first have to activate it. To active virtual environment in Linux or Mac OS type the following command:
$ source env/bin/activate (env) $
Windows users can use the following command:
C:\Users\Win>env\Scripts\activate.bat (end) C:\Users\Win>
(env) in front of the prompt string, it indicates that the virtual environment named
env is up and running. From this point on, any package you add or remove using
pip will only affect this virtual environment. Your system-wide Python installation will remain intact. We can use
pip list command to view packages installed in this virtual environment.
1 2 3 4 5 6 7
(env) $ pip list Package Version ---------- ------- pip 10.0.1 setuptools 39.2.0 wheel 0.31.1 (env) $:
This virtual environment has 3 packages installed. It is important to note that once the virtual environment is active you can invoke pip either using
pip3. This is true for Window, Ubuntu as well as Mac OS.
Deactivating Virtual Environment #
To deactivate virtual environment type the following command:
(env) $ deactivate
This command is same for Windows, Ubuntu, and Mac. Now we are out of the virtual environment. Run
pip3 list command again, but this time it will show you all the system-wide packages installed on your system.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
$ pip3 list apt-clone (0.2.1) apt-xapian-index (0.47) apturl (0.5.2) blinker (1.3) Brlapi (0.6.4) chardet (2.3.0) command-not-found (0.3) cryptography (1.2.3) decorator (4.2.1) defer (1.0.6) dirspec (13.10) httplib2 (0.9.1) idna (2.0) ...
Note: The ellipsis (
...) indicates that the code snippet is truncated to save space.
On Windows, you can
pip list instead of
pip3 list to view the system-wide packages.
1 2 3 4 5 6 7 8 9 10
C:\Users\Win>pip list certifi (2017.4.17) chardet (3.0.4) colorama (0.3.9) decorator (4.0.11) httpie (0.9.9) idna (2.5) ipython (6.1.0) ipython-genutils (0.2.0) ...
So these packages are available on my system-wide Python installation. Yours could be different.
In the next step, we will install Django.
Installing Django #
In this tutorial, we will use Django 1.11. To install Django, activate virtual envionment and then type the following command.
$ pip3 install django==1.11
Testing the Installation #
Inside the virtual environment start the Python shell by typing
python3 or just
python if you are on Windows.
1 2 3 4 5
(env) $ python3 Python 3.5.2 (default, Nov 23 2017, 16:37:01) [GCC 5.4.0 20160609] on linux Type "help", "copyright", "credits" or "license" for more information. >>>
To verify whether the installation was successful or not, import
django package and call
get_version() function as follows.
1 2 3 4 5 6
>>> >>> import django >>> >>> django.get_version() '1.11' >>>
If everything went fine, you should get the version of the Django installed. If you have encountered any error go through all the above steps or post a comment in the box below and we will figure out the problem.
To exit Python shell type
Ctrl+D in Linux/Mac or
Ctrl+Z in Windows or just type