Why do we need IPython?
The project IPython aims at making python more interactive. The default interactive python shell (what we get when by typing "python" ) is limited with functionality. For example, we can not explore files and directories (like "ls" command) or error messages with exploring files are not very informative.
How to install?
Make sure you have PIP already setup which will help to install other libraries easily. If you don't have it then refer this.
> pip install ipython
> pip install nose
> pip install pexpect
> pip install pandoc
For IPython notebook
> pip install pyzmq
> pip install Tornado # This project is for HTTP server.
> pip install Jinja # This is templating tool to render HTML pages.
If you get error that some specific module is missing then install it using PIP, for example if you get following error: "ImportError: No module named jinja2" then use,
> pip install Jinja2
If you have installed all packages successfully then just type ipython on command prompt, which will open ipython interactive session. You should be able to see something like,
This is similar to interactive shell of python but rich in features, so lets try few basic python commands. Declare few variables,
# Lets declare 2 integer variables and one string variable
> varA = 10
> varB = 20
> myName = 'Akshay'
As you can see the tab completion feature is also available in IPython. Just type "var" and press tab, it will give list of all variable staring from "var" (refer line 4 in screenshot above).
If you want to get list of all variable you can use the "who" command.
# Then to get variables with type integer use,
> who int
# To get list of variables with name, type and value use,
Now lets explore on how to clear variables from session. Use "reset" command which will clear all variables currently available in memory.
# To check existing objects,
# To reset the session and delete all variables,
# To crosscheck if all objects (variables) are deleted
# We can enable logging by following command,
# To switch off logging,
# To switch on logging.
Now there are many other useful commands similar to what we have seen above. These commands are called magic commands and get the list of command,
IPython has predefined ‘magic functions’ which can be used as command line style syntax. There are two kinds of magics as you can see in screenshot above, line-oriented magics and cell-oriented magics.
- Line magics are prefixed with single % character and work like regular command-line calls: they get as an argument the rest of the line, where arguments are passed without parentheses or quotes.
- Cell magics are prefixed with a double %%, and they are functions that get as an argument not only the rest of the line, but also the lines below it in a separate argument.