Using IPython as a shell
Scientists, data analysts, and engineers are used to experimenting. IPython was created by scientists with experimentation in mind. The interactive environment that IPython provides is viewed by many as a direct answer to MATLAB, Mathematica, and Maple.
The following is a list of features of the IPython shell:
- Tab completion, which helps you find a command
- History mechanism
- Inline editing
- Ability to call external Python scripts with
%run
- Access to system commands
- The pylab switch
- Access to the Python debugger and profiler
The following list describes how to use the IPython shell:
- The pylab switch: The pylab switch automatically imports all the
Scipy
,NumPy
, andmatplotlib
packages. Without this switch, we would have to import these packages ourselves.All we need to do is enter the following instruction on the command line:
$ ipython -pylab Type "copyright", "credits" or "license" for more information. IPython 2.0.0-dev -- An enhanced Interactive Python. ? -> Introduction and overview of IPython's features. %quickref -> Quick reference. help -> Python's own help system. object? -> Details about 'object', use 'object??' for extra details. Welcome to pylab, a matplotlib-based Python environment [backend: MacOSX]. For more information, type 'help(pylab)'. In [1]: quit()
Tip
The
quit()
function or Ctrl + D quits the IPython shell. - Saving a session: We might want to be able to go back to our experiments. In IPython, it is easy to save a session for later use, with the following command:
In [1]: %logstart Activating auto-logging. Current session state plus future input saved. Filename : ipython_log.py Mode : rotate Output logging : False Raw input log : False Timestamping : False State : active
Logging can be switched off as follows:
In [9]: %logoff Switching logging OFF
- Executing system shell command: Execute a system shell command in the default IPython profile by prefixing the command with the
!
symbol. For instance, the following input will get the current date:In [1]: !date
In fact, any line prefixed with
!
is sent to the system shell. Also, we can store the command output as shown here:In [2]: thedate = !date In [3]: thedate
- Displaying history: We can show the history of commands with the
%hist
command, for example:In [1]: a = 2 + 2 In [2]: a Out[2]: 4 In [3]: %hist a = 2 + 2 a %hist
This is a common feature in Command Line Interface (CLI) environments. We can also search through the history with the
-g
switch as follows:In [5]: %hist -g a = 2 1: a = 2 + 2
Tip
Downloading the example code
You can download the example code files for all the Packt books you have purchased from your account at http://www.packtpub.com. If you purchased this book elsewhere, you can visit http://www.packtpub.com/support and register to have the files e-mailed directly to you.
We saw a number of so-called magic functions in action. These functions start with the %
character. If the magic function is used on a line by itself, the %
prefix is optional.