IPython is an interactive Python shell, it provides tools for interactive and parallel computing that are widely used in the scientific world. It can also benefit any other Python developer.
2. Introduction to IPython
- Fernando Perez started IPython in 2001, he
wanted a better interactive Python interpreter
- 259 lines of code, written in few hours
https://gist.github.com/1579699
- Today: 78,481 lines of code & more than 100
contributors in the last 12 months
http://www.ohloh.net/p/ipython
3. What is IPython?
IPython is an interactive shell for Python
● additional shell syntax
● introspection
● tab completion
● rich history
● better debugging
● parallel computing
6. Hands On IPython
- Shell
$ ls, pwd, !vim
- Code completion
$ import os
$ os.[press tab]
- Introspection
$ os?
$ os??
- History
> use the key up and down
- Execute previous command
$ _i, _ii, _iii : Previous, next previous, next next previous input
- Load Code > %loadpy
- Traceback and Debugger %pdb
7. Integration with your IDE
- Vim
https://github.com/ivanov/vim-ipython
- Sublime Text
https://github.com/iambus/SublimeIPython
- TextMate
http://wiki.ipython.
org/Cookbook/Using_IPython_with_TextMate
9. What is Notebook?
A web-based application that can execute code and also contain
rich text and figures, mathematical equations and arbitrary HTML
- a web-based shell to an IPython
- a mix of notes, code, html, images, video, ...
- a great tool for debugging, teaching
- has ability to save, edit and delete
“notebooks”
10. Install Notebook
Let's forget about easy_install, seriously?
$ pip install ipython
$ pip install pyzmq
$ pip install tornado
$ ipython notebook
For some of the online examples :
$ pip install numpy
$ apt-get install libatlas-base-dev gfortran
$ pip install scipy
$ pip install matplotlib
12. Notebook - Django Extension
Notebook is not only for Physicists !!!
- Use it with Django:
https://github.com/django-extensions/django-extensions/pull/234
$ ./manage.py shell_plus --notebook
There is a little bug with the last IPython, that you can fix easily:
export PYTHONPATH=/home/areski/public_html/django/MyProjects/newfies-dialer
Add this in your settings.py:
IPYTHON_ARGUMENTS = [
'--ext', 'django_extensions.management.notebook_extension',
'--debug'
]
13. Conclusion
- IPython
Introspection, additional shell, tab completion, rich history,
parallel computer, etc...
- Notebook
All the benefits of IPython on the web
IPython received a Grant
Sloan Foundation grant: IPython has been awarded a $1.15 million grant
from the Alfred P. Sloan Foundation. This will support several core
developers, allowing them to focus on building the IPython Notebook into a
tool for open, collaborative, reproducible scientific computing.
The Future is Bright !!!
14. References
- IPython : Python at your fingertips:
http://www.youtube.com/watch?v=26wgEsg9Mcc
- Using IPython Notebook with Django:
http://andrewbrookins.com/python/using-ipython-notebook-with-django/
- IPython Docs:
http://ipython.org/documentation.html
- IPython Notebook Viewer:
http://nbviewer.ipython.org/
15. Hope you enjoyed it!
slideshare.net/areski
github.com/areski
twitter.com/areskib