Как стать автором
Обновить

Комментарии 15

Больше документации о python, хорошей и разной! Спасибо за статью, а IPython очень рекомендую всем питонщикам. Жаль для 3ойки видимо не дождемся его.
>Жаль для 3ойки видимо не дождемся его.

прочитал как «для Зойки» вместо «для тройки»…
Спасибо вашему комментарию. Не мог понять, какую «Зойку» он имел в виду -)))
Вечер же)
В смысле? Он то-ли год, то-ли полтора как по 3х работает.
Очень хороший комментарий, честно, давно так не смеялся.
Огромное спасибо, оказывается мои познания ограничивались только smth?. Однозначно в закладки!
Также для %edit есть сокращение %ed. Мелочь, а приятно ;)

PS исправьте тег pyhon на python.
ipython замечателен. но при вводе юникода у меня возникает вот такой баг:
Python 2.7.0+ (r27:82500, Sep 15 2010, 18:14:55) 
IPython 0.10.2 -- An enhanced Interactive Python
..
In [1]: u"привет"
Out[1]: u'\xd0\xbf\xd1\x80\xd0\xb8\xd0\xb2\xd0\xb5\xd1\x82'

чяднт?
НЛО прилетело и опубликовало эту надпись здесь
большое спасибо за подсказку: нашел ещё более замечательный ответ — недавно этот баг все-таки исправили, но релиза пока нет.

git clone git://github.com/ipython/ipython.git
cd ipython
python setup.py install

IPython 0.11.dev -- An enhanced Interactive Python
..
In [1]: u"привет"
Out[1]: u'\u043f\u0440\u0438\u0432\u0435\u0442'

:)
> Введя команду %edit IPython откроет нам системный редактор, где мы сможем редактировать наш код, привычным способом.

Поправьте, а то в стиле «Проезжая мимо театра с меня слетела шляпа» получилось.
А вот так можно встроить IPython в свое консольное приложение в качестве REPL консоли

def start_python_console(namespace):
    try: # use IPython if available
        if noipython:
            raise ImportError
        import IPython
        shell = IPython.Shell.IPShellEmbed(argv=[], user_ns=namespace)
        shell()
    except ImportError:#fallback на случай недоступности IPython
        import code
        try: # readline module is only available on unix systems
            import readline
        except ImportError:
            pass
        else:
            import rlcompleter
            readline.parse_and_bind("tab:complete")
        code.interact(banner='', local=namespace)
Странно, что об этом не написали, но я постоянно использую ed <func_name>:

In [2]: ed
IPython will make a temporary file named: /tmp/ipython_edit_PdnW9Y.py
Editing... done. Executing edited code...
Out[2]: "def amicool():\n    print 'yes'\n"

In [3]: ed amicool
Editing... done. Executing edited code...

In [4]: amicool()
super yes


то есть если вызвать ed, там слепить функцию, то потом можно написав ed <func_name> вернуться к редактированию её исходника. Очень удобно =).
спасибо конечно, но до «advanced» тут ещё далеко. ipython — это довольно сложная система с обширным ф-ционалом. Часть фишек раскрыта в книге Python for Unix and Linux System Administration (доку читать довольно скучно)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации