На 15 минуте 40 секунде решили поговорить о консольных командах. В перовом примере был записан на диск файл "%%file script.py", а потом выполнен "%run script" ... Во втором примере был также записан файл с делением на ноль и импортом модуля, при остановке "where the notebook still lags the terminal and qt consoles" ... В видео показывается, что qt console подключена к пространству имен ядра и может его изменять.... Справка по %run ... Пример с %debug (только в видео на 22 минуте) Потом "The %gui magic enables the integration of GUI event loops with the interactive execution loop" ... %connect_info %logstart %notebook
Running code with %run
In [6]:
%%file script.py
x = 10
y = 20
z = x+y
print 'z is:', z
In [7]:
%run script
In [8]:
x
Out[8]:
In [23]:
%%file err.py
import mod
mod.g(0)
In [10]:
%run err
This is the one important point where the notebook still lags the terminal and qt consoles: it can not deal with interactive input from the underlying Python process, which precludes its use for interactive debugging (or anything else that calls
raw_input
, for that matter). But in the terminal, you can use %debug
to enter the interactive debugger any time after an exception has been thrown.
В видеоролике используется qt console, но не говорится о том, как ее запустить. Я помню, что есть возможность подключить к одному ядру сразу несколько терминалов. Забыл, где это прочитал, но нашел магическую команду...
In [5]:
# Open a qtconsole connected to this kernel.
%qtconsole
In []:
Python 2.7.5 |Anaconda 1.9.0 (64-bit)| (default, Jul 1 2013, 12:37:52) [MSC v.1500 64 bit (AMD64)]
Type "copyright", "credits" or "license" for more information.
IPython 1.1.0 -- 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.
%guiref -> A brief reference about the graphical user interface.
In [6]:
А как из консоли посмотреть ячейку In[5] напрмер? Для этого можно использовать клавиши со стрелками "вверх"-"вниз"... А вообще-то надо смотреть хелпер в консоли qt (там еще %magic подсказки есть в меню)
In [17]:
%run
Вот, например, как можно выполнить скрипт с включенным дебаггером:
In [21]:
%run -d script.py
А вот полезная команда с инструкцией, как подключится к определенному ядру:
In [31]:
%connect_info
Event loop and GUI integration¶
The
Consider for example the execution of Qt-based code. Once we enable the Qt gui support:
%gui
magic enables the integration of GUI event loops with the interactive execution loop, allowing you to run GUI code without blocking IPython.Consider for example the execution of Qt-based code. Once we enable the Qt gui support:
In [1]:
%gui qt
We can define a simple Qt application class (simplified version from this Qt tutorial):
In [2]:
import sys
from PyQt4 import QtGui, QtCore
class SimpleWindow(QtGui.QWidget):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.setGeometry(300, 300, 200, 80)
self.setWindowTitle('Hello World')
quit = QtGui.QPushButton('Close', self)
quit.setGeometry(10, 10, 60, 35)
self.connect(quit, QtCore.SIGNAL('clicked()'),
self, QtCore.SLOT('close()'))
And now we can instantiate it:
In [3]:
app = QtCore.QCoreApplication.instance()
if app is None:
app = QtGui.QApplication([])
sw = SimpleWindow()
sw.show()
from IPython.lib.guisupport import start_event_loop_qt4
start_event_loop_qt4(app)
But IPython still remains responsive:
In [4]:
10+2
Out[4]:
The
%gui
magic can be similarly used to control Wx, Tk, glut and pyglet applications, as can be seen in our examples.Embedding IPython in a terminal application¶
In [28]:
%%file simple-embed.py
# This shows how to use the new top-level embed function. It is a simpler
# API that manages the creation of the embedded shell.
from IPython import embed
a = 10
b = 20
embed(header='First time', banner1='')
c = 30
d = 40
embed(header='The second time')
The example in kernel-embedding shows how to embed a full kernel into an application and how to connect to this kernel from an external process.
Logging terminal sessions and transitioning to a notebook¶
The
%logstart
magic lets you log a terminal session with various degrees of control, and the %notebook
one will convert an interactive console session into a notebook with all input cells already created for you (but no output).
In []:
Посты чуть ниже также могут вас заинтересовать
Комментариев нет:
Отправить комментарий