Python: установка и использование IPython

Автор: | 19/08/2014

PythonIPython — интерактивная оболочка для языка программирования Python, которая предоставляет расширенную интроспекцию, дополнительный командный синтаксис, подсветку кода и автоматическое дополнение. Является компонентом пакета программ SciPy. (c) Wiki

Установка через PIP:

# pip install ipython

Однако, на CentOS 6.5, в котором используется:

# python -V
Python 2.6.6

установка через pip невозможна, так как:

ERROR: IPython requires Python version 2.7 or 3.3 or above.

Поэтому – установим через yum.

Нам потребуется подключенный репозиторий Epel:

# yum repolist | grep epel
...
epel Extra Packages for Enterprise Linux 6 - x86_64 11,024+86
epel-debuginfo Extra Packages for Enterprise Linux 6 - x86_64 - Debug 2,155+20

Устанавливаем:

# yum -y install ipython
...
Install 78 Package(s)

Total download size: 61 M
Installed size: 210 M
...
Installed:
python-ipython.noarch 0:0.13.2-5.el6
...
Complete!

Кроме того, нам потребуется отдельно установить модуль argparse:

# pip install argparse
...
Successfully installed argparse
Cleaning up...

После чего можно запускать консоль IPython:

$ ipython
Python 2.6.6 (r266:84292, Jan 22 2014, 09:42:36)
Type "copyright", "credits" or "license" for more information.

IPython 0.13.2 -- 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.

In [1]:
Do you really want to exit ([y]/n)? y

Краткий HowTo по IPython

Быстрое получение справки:

In [23]: %quickref

Просмотр истории ввода – стрелки вверх/вниз;

Смена текущей директории:

In [4]: cd /
/

In [5]: pwd
Out[5]: u'/'

In [6]: cd /home/
/home

In [7]: pwd
Out[7]: u'/home'

Прсомотр содержимого директории:

In [10]: ls -l
total 8
-rwxrwxr-x 1 setevoy setevoy 1300 Aug 12 16:47 mysql.py*

Выполенние внешних скриптов:

In [13]: %run mysql.py
Выполянем запрос INSERT...
Выполняем SELECT, что бы поcмотреть результат:
(('line1', 'line2', 1L), ('line3', 'line4', 2L), ('line5', 'line6', 3L), ('line7', 'line8', 4L))

Автоподстановка команд и/или имен файлов, пути – <TAB>;

Автоподстановка имен модулей – <TAB>:

Просмотр всех функций модуля:

In [14]: import os

In [16]: os.<TAB>
Display all 213 possibilities? (y or n)
os.EX_CANTCREAT os.O_CREAT os.R_OK os.WIFCONTINUED os.confstr_names os.fchmod os.getpgid os.mkfifo os.removedirs os.spawnve os.ttyname
os.EX_CONFIG os.O_DIRECT os.SEEK_CUR os.WIFEXITED os.ctermid os.fchown os.getpgrp os.mknod os.rename os.spawnvp os.umask
os.EX_DATAERR os.O_DIRECTORY os.SEEK_END os.WIFSIGNALED os.curdir os.fdatasync os.getpid os.name os.renames os.spawnvpe os.uname

Получение справочной информации по модулю:

In [18]: os?
Type: module
String Form:<module 'os' from '/usr/lib64/python2.6/os.pyc'>
File: /usr/lib64/python2.6/os.py
Docstring:
OS routines for Mac, NT, or Posix depending on what system we're on.

This exports:
- all functions from posix, nt, os2, or ce, e.g. unlink, stat, etc.
- os.path is one of the modules posixpath, or ntpath
- os.name is 'posix', 'nt', 'os2', 'ce' or 'riscos'
- os.curdir is a string representing the current directory ('.' or ':')
- os.pardir is a string representing the parent directory ('..' or '::')
- os.sep is the (or a most common) pathname separator ('/' or ':' or '')
- os.extsep is the extension separator ('.' or '/')
- os.altsep is the alternate pathname separator (None or '/')
- os.pathsep is the component separator used in $PATH etc
- os.linesep is the line separator in text files ('r' or 'n' or 'rn')
- os.defpath is the default search path for executables
- os.devnull is the file path of the null device ('/dev/null', etc.)

Programs that import and use 'os' stand a better chance of being
portable between different platforms. Of course, they must then
only use functions that are defined by all platforms (e.g., unlink
and opendir), and leave all pathname manipulation to os.path
(e.g., split and join).

Получение информации по конкретной функции/методу:

In [17]: os.open?
Type: builtin_function_or_method
String Form:<built-in function open>
Docstring:
open(filename, flag [, mode=0777]) -> fd

Open a file (for low level IO).

И работа, как в обычной консоли Python:

In [19]: def fun():
....: print 'I'm function'
....:

In [20]: fun()
I'm function
>>> def fun():
... print 'I'm function'
...
>>> fun()
I'm function

Различие в том, что IPython устанавливат отступы автоматически, тогда как в обычной консоли Python – их необходимо задавать вручную.

Ссылки по теме

http://ipython.org
http://www.pythonforbeginners.com