PHP Inside

 
   
 

Главная


Начало
страница1
страница2
страница3
страница4
страница5
страница6
страница7
страница8
страница9
страница10
страница11
страница12
страница13
страница14
страница15
страница16
страница17
страница18
страница19
страница20
страница21
страница22
страница23
страница24
страница25
страница26
страница27
страница28
страница29
страница30
страница31
страница32
страница33
страница34
страница35
страница36
страница37
страница38
страница39
страница40
страница41
страница42
страница43
страница44
страница45
страница46
страница47
страница48
страница49
страница50
страница51
страница52
страница53
страница54
страница55
страница56
страница57
страница58
страница59
страница60
страница61
страница62
страница63
страница64
страница65
страница66
страница67
страница68
страница69
страница70
страница71
страница72
страница73
страница74
страница75
страница76
страница77
страница78
страница79
страница80
страница81
страница82
страница83
страница84
страница85
страница86
страница87
страница88
страница89

 
 
 

 

 

IPython в Windows

В системах Windows IPython тоже доступ­ на и столь же прекрасно справляется с ро­ лью основной командной оболочки ( хотя , нужно признать , что в Windows это не са­мая популярная функция ). А с учётом бо­ лее развитых автодополнений , истории ко-

ка не поддерживается , но , думаю , это вопрос времени ) и модуль pexpect. Также не лишней будет поддержка библиотеки readline ( без неё не бу­ дут работать автодополнение , неко­торые функции , связанные с истори­ ей команд ). Ссылки приведены в кон­ це статьи .

При первом запуске команды

« ipython » оболочка попытается создать в домашнем ка­ талоге пользователя подкаталог .ipython, в котором будут размещаться конфигурационные и рабочие файлы оболоч­ ки . В дальнейшем , при запуске оболочки вы будете полу­ чать подсказку по основным командам , позволяющим на­ чать работу :

[amsandfipcbsd /usr/home/amsand]$ ipython

Python 2.5.2 ( г 252:60911, Sep 18 2008, 02:11:58)

Type "copyright", "credits" or "license" for more information.

IPython 0.8.4 An enhanced Interactive Python.

? -> Introduction and overview of IPython's features.

Squlckref -> Quick reference.

help -> Python's own help system.

object? -> Details about 'object'. ?object also works, ?? prints more.

Здесь « In [N]: » - приглашение IPython, числа в квад­ ратных скобках означают порядковый номер строки вво­ да . В дальнейшем вы увидите ещё и строки « Out [N]: » - это строки вывода . При желании эти приглашения можно изменить : в файле -/.ipython/ipythonrc отредактируйте стро­ ки prompt_in1, promptjn2 и prompt_out.

Всё , что вы могли делать в оболочке python, можно де­ лать и здесь : импортировать модули , выполнять любые ко­ манды Python, пользоваться справочной системой . Но есть несколько дополнительных возможностей , которые и рас­ смотрим чуть подробнее .

Во - первых , это быстрый просмотр информации по тому или иному объекту ( в том числе и встроенному ):

 

In [18]: s :

= ' string '

In [19]: s?

 

Type:

str

Base Class:

<type 'str'>

String Form:

string

Namespace:

Interactive

Length:

6

Docstring:

 

str(object)

-> string

Return a nice string representation of the object.

If the argument is a string, the return value is the sane object.

To есть , добавив вопросительный знак к имени интере­ сующего вас объекта , вы получите информацию о его ти­ пе , базовом классе , пространстве имён , а также строку до­кументации объекта .

Во - вторых , это встроенные «магические» команды : alias, cd, pwd, pushd/popd и ряд других . Многие из них выполняют те же функции , к которым мы привыкли в командной обо­ лочке . Некоторые специальные функции служат для расши­рения возможностей IPython. Но нужно учитывать , что если


манд и функций навигации по каталогам она выглядит даже более предпочтитель­ ной . Только не забывайте устанавливать «привязку» pyreadline-1.5-win32-setup.exe ( найти её можно на странице проекта - http://ipython.scipy.org/dist) - без неё многие «вкусности» останутся недоступными .

создать объект с таким же именем , то он перекроет встро­енную команду

In [31]:

pwd

 

0ut[31]: 7usr/ha

ne/amsand'

In [32]: In [33]:

pwd pwd

= 12*3

Out[33] : 36

 

 

Поэтому основным синтаксисом встроенных команд яв­ ляется следующий : « %pwd » , т . е . команда должна начинать­ ся с символа « % » . Это позволяет выполнить «магическую» функцию независимо от наличия «тёзок» в текущем адрес­ ном пространстве . Немного непривычно , но зато надёжно .

Кстати , IPython предоставляет мощные функции авто­ дополнения команд - введите « % » , нажмите клавишу < ТаЬ > и вы получите полный список встроенных команд . Автодо­ полнение действует почти везде , где оно имеет смысл . На­ пример , вы можете получить список всех модулей , которые могут быть импортированы :

 

In [34]:

import s

<Tab>

 

 

scanext

shelve

soitpd

ere constants

struct

sched

shlex

smtpd2

sre_parse

subprocess

screen

shutil

smtplib

stat

sunau

select

signal

sndhdr

statvfs

sunaudio

sets

sip

socket

string

synbol

sgmllib

sipconfig

sqlite3

stringold

symtable

sgmlop

sipdistutils sre

stringprep

sys

sha

site

sre compile

strop

syslog

Для любого объекта , введя его имя , точку и нажав < ТаЬ >, вы получите список доступных атрибутов и методов . Авто­ дополнение охотно предоставит вам список файлов в те­ кущем каталоге там , где это может быть полезно ( напри­ мер , в команде ореп ()). В общем , если вы будете активно использовать IPython, клавиша < ТаЬ > станет одной из ва­ших любимых . ( Впрочем , при желании вы можете её пере­ определить , поскольку её функциональность определяет­ ся библиотекой readline.)

Идём дальше . В - третьих , среди дополнительных возмож­ ностей нельзя не отметить упрощённый синтаксис вызова команд операционной системы . Если в стандартной оболоч­ ке python вам нужно было импортировать модуль os и при­бегать к его функции system ( например , « os.system('ps') » ), то в IPython это сделать гораздо проще :

11454 рО Is 0:00,02 bash

35940 р 0 S+ 0:00,58 /usr/local/bin/python2.5 /usr/local/bin/ipythoi

58S41 р0 S+ 0:00,00 sh -c ps

58842 p0 R+ 0:00,00 ps

тпе самою 0:00,02 bash

То есть вы можете выполнить любую системную команду прямо из IPython, просто предварив её символом « ! » . Опять - таки , не слишком привычно , но в любом случае на порядок удобнее , чем «скакать» между двумя терминалами .

В - четвёртых , IPython предоставляет мощнейший ме­ ханизм истории команд . Помимо традиционной «стрел­ ки вверх» , позволяющей последовательно возвращать­ ся к введённым ранее командам ( которая , между прочим , ведёт себя в « csh - стиле» , т . е . если ввести несколько сим­ волов и затем нажать стрелку вверх , «пролистываться» бу­дут лишь команды , начинавшиеся с этих символов ), вы мо­жете воспользоваться встроенной командой %history, кото­ рая выведет пронумерованный список предыдущих команд ( числом , переданным в качестве аргумента , можно огра­ничить количество выводимых строк ). Ещё раз запустить любую из них очень просто : « _47 » повторно исполнит 47- ю команду . Теперь , думаю , вы понимаете назначение чисел в квадратных скобках в приглашении .

Кстати , эти самые In и Out - самые настоящие ( хотя и «особые» ) списки . Так что при желании вы можете обра­ щаться к их элементам напрямую : « 1 п [47]>>. Особенно поле­ зен доступ к списку Out, позволяя повторно использовать вывод предыдущих команд :