To create a new Django application you must have the following things installed on your computer:
- A virtual environment
Installing Python on Windows #
In this tutorial we will use Python 3.4. Let's start by installing Python on Windows first.
Note: Throughout this course instruction are given for Windows, Ubuntu and Mac. In some cases commands vary from one system to another, if that's the case, I have clearly mentioned it and provided commands specific to system. However, If commands are same, I have demonstrated only in Windows.
If you are using Windows download the Python setup from https://www.python.org/ftp/python/3.4.4/python-3.4.4.msi.
After downloading the installer double click to open it. Select "Install for all users" and click Next.
In the next window installer will ask you to select destination directory, keep it to default (i.e
C:\Python34\) and click next.
This step is the most crucial. In this step the installer will ask you to customize the Python installation. Scroll down a little and select "Add python.exe to PATH", click the dropdown icon in front of "Add python.exe to PATH" and select "Will be installed on local hard drive". This allows us to run
python.exe in the command prompt from anywhere in the system without specifying the full path.
Click next. At this point you may get a confirmation window like the following , asking you "Do you really want to install this software on your computer. Select Yes to proceed.
Installer will take 1 or 2 minutes depending upon the speed of your system to complete the installation .
Click finish to exit the installer. Now you have installed Python on your Windows computer.
Python Package Manager #
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. The packages you install using
pip will be installed in the directory
C:/python34/lib/site-packages. Windows installer automatically installs
pip by default, so you don't need to do anything else. To check which version of
pip is installed on your system execute the following command.
C:\Users\Q>pip --version pip 7.1.2 from c:\python34\lib\site-packages (python 3.4) C:\Users\Q>
As you can see this system has
pip 7.1 and is installed under Python 3.4.
Installing Python on Linux #
On a Linux distribution like Ubuntu or Fedora, it is highly likely that Python 3.4 or above is installed. To check open terminal and type the following command.
Q@VM1:~$ python3 --version Python 3.5.1
As you can see, my Ubuntu machine has Python 3.5 installed by default. Although the whole tutorial is geared towards Python 3.4, you would be fine if you choose to use Python 3.4 or 3.5. However, If you want to follow along using Python 3.4 in Ubuntu type the following commands in the terminal to install Python 3.4.
Q@VM1:~$: sudo add-apt-repository ppa:fkrull/deadsnakes Q@VM1:~$: sudo apt-get update Q@VM1:~$: sudo apt-get install python3.4
Execute each of these commands one by one on the command line. These commands first download the Python from
ppa:fkrull/deadsnakes repository and then installs it on your system. On a slow connection the whole process may take some time, so please be patient. To invoke Python 3.4 type
python3.4 instead of
python3 in the command line as follows:
Q@VM1:~$ python3.4 Python 3.4.5 (default, Jul 15 2016, 16:39:07) [GCC 5.4.0 20160609] on linux Type "help", "copyright", "credits" or "license" for more information. >>>
To exit the python shell hit Ctrl+D or type
quit() in the shell.
Python installer for Ubuntu doesn't install pip. To install it execute the following command:
Q@VM1:~$ sudo apt-get install python3-pip
To verify the
pip installation execute the following command.
Q@VM1:~$ pip3 --version pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5) Q@VM1:~$
pip3 is installed as a package which belongs to Python 3.5 not Python 3.4.
Installing Python on Mac #
Most Mac comes with Python 2.7 installed by default. To install Python 3.4 on a Mac visit https://www.python.org/downloads/release/python-344/ and scroll down to bottom under Files select the installer corresponding to your version of Mac OS .
If you are using Mac OS X 32-bit system download Mac OS X 32-bit i386/PPC installer and if you are using Mac OS X 64-bit download Mac OS X 64-bit/32-bit installer. On a 64-bit system both installer will work.
After downloading the installer, double click to start the it and go through the installation process as usual.
Mac installer also installs
pip so you don't need to install anything else. To check the version of the
pip installed on Mac type the following command.
(env) Qs-Mac:TGDB q$ pip3 --version pip 9.0.1 from /Users/q/TGDB/env/lib/python3.4/site-packages (python 3.4) (env) Qs-Mac:TGDB q$
Notice in Ubuntu and Mac we are checking version of pip using
pip3 --version instead of
pip --version. We can also check the version of pip in Windows using
pip3 --version. However,
pip --version might not work in Linux/Mac unless you have Python 2 or pip associated with Python 2 installed.
Installing Python Virtual Environment #
Create a new directory named
TGDB (short for "The Great Django Blog") using the
C:\Users\Q>mkdir TGDB C:\Users\Q>
We will use this folder to store our Django application. You can create this directory anywhere, location doesn't really matter. I am using Windows and I have created this directory in
Q is my username. Once done , change your current working directory to
TGDB using the
cd command as follows:
C:\Users\Q>cd TGDB C:\Users\Q\TGDB>
Now we are ready to install Virtual Environment.
So what is this Virtual Environment ?
A virtual environment helps us to run isolated instance 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 a library called
super_library_v02, on the other hand our forum uses
super_library_v01. At a given point in time we can only have a single version of
super_library installed on our system, we can't have both version simultaneously. A Virtual Environment helps us to tackle these kinds of problems easily.
A Virtual Environment solves this problem by creating a virtual environment along with a separate Python installation. So, no matter what libraries you install on a particular virtual environment using
pip, will not conflict with the libraries available at the system-wide Python installation.
The package required to create these isolated environment is called
virtualenv on Windows open command prompt and type the following command.
C:\Users\Q\TGDB>pip install virtualenv
virtualenv in Ubuntu/Mac type the following command.
Q@VM1:~/TGDB$ pip3 install virtualenv
To create virtual environment type
virtualenv command followed by the name of the virtual environment. Here is how you can create a virtual environment in Windows:
C:\Users\Q\TGDB>virtualenv env Using base prefix 'c:\\python34' New python executable in C:\Users\X\TGDB\env\Scripts\python.exe Installing setuptools, pip, wheel...done. C:\Users\X\TGDB>
virtualenv creates virtual environment using version of the Python which was used to installed it (using the
pip command). In the case of Windows, it is Python 3.4 whereas in Ubuntu it is Python 3.5.
C:\Users\Q>pip --version pip 7.1.2 from c:\python34\lib\site-packages (python 3.4)
To specify any other version of the Python use
-p parameter as follows:
C:\Users\Q\TGDB>virtualenv env -p C:/Python27/python.exe
The above command will create a virtual environment using Python 2.7. Before specifying the version of the python using the
-p parameter make sure that the version of the Python specified is installed on your computer.
We can use the same command as above to create virtual environment in Ubuntu/Mac as follows:
Q@VM1:~/TGDB$ virtualenv env Using base prefix '/usr' New python executable in /home/q/my_workspace/env/bin/python3 Also creating executable in /home/q/my_workspace/env/bin/python Installing setuptools, pip, wheel...done. Q@VM1:~/TGDB$
The above command would create a virtual environment using Python 3.5 because
virtualenv package was installed using
pip3 package of Python 3.5.
In the case you want to follow along using Python 3.4 in Ubuntu, first delete the
env directory created by
virtualenv command and then create a new virtual environment using Python 3.4 using the following command.
Q@VM1:~/TGDB$ virtualenv env -p /usr/bin/python3.4 Running virtualenv with interpreter /usr/bin/python3.4 Using base prefix '/usr' New python executable in /home/Q/my_workspace/env/bin/python3.4 Also creating executable in /home/Q/my_workspace/env/bin/python Installing setuptools, pip, wheel...done. Q@VM1:~/TGDB$
To know the absolute path of Python 3.4 use the
Q@VM1:~/TGDB$ which python3.4 /usr/bin/python3.4 Q@VM1:~/TGDB$
So what actually
virtualenv command does ?
virtualenv command creates a isolated environment, a directory which we named
env for developing applications using Django/Python. Once
virtualenv finished setting up new virtual environment, open Windows Explorer or Nautilus in Ubuntu to view the files and folders
virtualenv has created for us inside the
env directory. As you can can see the
virtualenv command has created four directories and one file inside the
So what these files and folder contains ?
These files and folder constitutes a separate python installation. Any libraries or packages you install here will be available only inside this virtual environment, so you can work on your project without conflicting with other packages installed on the system.
Activating virtualenv #
We have created a virtual environment in the last step, to use it we first have to activate it. To activate virtual environment type the following command.
Activating virtualenv in windows #
C:\Users\Q\TGDB>env\Scripts\activate.bat (env) C:\Users\Q\TGDB>
(env) in front of path name indicates that your virtual environment 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.
(env) C:\Users\Q\TGDB>pip list DEPRECATION: The default format will switch to columns in the future. You can us e --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.con f under the [list] section) to disable this warning. pip (9.0.1) setuptools (36.4.0) wheel (0.29.0) (env) C:\Users\Q\TGDB>
This virtual environment has 3 packages installed. It is important to note that once virtual environment is active you can invoke pip either using
pip3. This is true for Window, Ubuntu as well as Mac.
(env) Q@VM1:~/TGDB$ pip3 list DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning. Django (1.10) pip (9.0.1) setuptools (36.4.0) wheel (0.29.0) (env) Q@VM1:~/TGDB$
(env) pro@pro-vm:~/TGDB$ pip list DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning. Django (1.10) pip (9.0.1) setuptools (36.4.0) wheel (0.29.0) (env) Q@VM1:~/TGDB$
As we can see
pip3 list and
pip3 list returns the same result.
To deactivate virtual environment issue the following command.
Now we are out of virtual environment, run the
pip list command again, but this time it will show you all the system-wide packages installed on your system.
C:\Users\X\TGDB>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) jedi (0.10.2) olefile (0.44) pickleshare (0.7.4) pip (7.1.2) ... C:\Users\X\TGDB>
... indicates that the code snippet is truncated to save space.
On Ubuntu/Mac you should use
pip3 list to view system-wide packages installed on the system.
Q@VM1:~$ pip3 list apturl (0.5.2) beautifulsoup4 (4.4.1) blinker (1.3) Brlapi (0.6.4) chardet (2.3.0) checkbox-support (0.22) command-not-found (0.3) cryptography (1.2.3) defer (1.0.6) feedparser (5.1.3) guacamole (0.9.2) html5lib (0.999) ... httplib2 (0.9.1)
Qs-Mac:TGDB q$ pip3 list pip (7.1.2) setuptools (18.2) virtualenv (15.1.0) You are using pip version 7.1.2, however version 9.0.1 is available. You should consider upgrading via the 'pip install --upgrade pip' command. Qs-Mac:TGDB q$
So these packages are available on my system-wide Python installation. Yours could be different.
Activating virtualenv in Ubuntu/Mac #
On Linux/Unix systems, we use
source command to activate
Q@VM1:~/TGDB$ source env/bin/activate (env) q@VM1:~/TGDB$
To deactivate simply type
(env) tom@VM1:~/TGDB$ deactivate Q@VM1:~/TGDB$
In the next step we will install Django.
Installing Django #
In this tutorial we will use Django 1.10. To install Django open terminal and type the following command.
(env) C:\Users\Q\TGDB>pip install django==1.10
This command fetches the Django framework from PyPI and installs it into your virtual environment. The output of the command should look like this:
(env) C:\Users\Q\TGDB>pip install django==1.10 Collecting django==1.10 Downloading Django-1.10-py2.py3-none-any.whl (6.8MB) 100% |################################| 6.8MB 80kB/s Installing collected packages: django Successfully installed django-1.10 (env) C:\Users\Q\TGDB>
If you just want to install current stable version simply issue the following command.
(env) C:\Users\Q\TGDB>pip install django
Testing the Installation #
Inside the virtual environment start the Python shell by typing
(env) C:\Users\Q\TGDB>python Python 3.4.4 (v3.4.4:737efcadf5a6, Dec 20 2015, 20:20:57) [MSC v.1600 64 bit (AM D64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>>
To verify whether installation was successful or not, import django module and call
get_version() method on it.
>>> import django >>> django.get_version() '1.10' >>>
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 the python shell type Ctrl + Z (in Windows), Ctrl + D (in Linux/Unix) or just type
>>> import django >>> django.get_version() '1.10.5' >>> ^Z (env) C:\Users\Q\TGDB>