2014-09-16 3 views
0

Мы можем использовать% run для выполнения скрипта python внутри консоли ipython (а не ноутбука). Тем не менее, есть ли способ запустить сценарий и загрузить каждую строку загрузки скрипта как одну ячейку ввода ipython. Напр. если сценарий:Загрузка скрипта python в ipython как ячейки ipython

if a == b: 
    print 2*a 

if a == 2*b: 
    print a 

Тогда внутри IPython скрипт должен загрузить (и выполнить) следующим образом:

In [1]: if a == b: 
    ...:  print 2*a 
    ...: 

In [2]: if a == 2*b: 
    ...:  print a 
    ...: 

Я не знаю, если это вообще возможно, но если да, то это будет действительно полезна, так как я могу загрузить скрипт, а затем выполнить ту часть кода, которую я хочу выполнить. Следующий вопрос будет заключаться в том, можно ли загружать исходный код импортированного модуля рекурсивно (например, делать шаг внутри отладчика). Таким образом, мы можем разработать и протестировать из самого ipython, не выполняя весь код с нуля (поскольку ipython сохраняет состояние на ячейку).

+3

При использовании IPython/Jupyter ноутбук можно копировать + вставлять целые/частичные скрипты в клетки и запускать в любом порядке, вам нравится. Мои $ 0,02: я обычно разрабатываю в ячейках iPython, а затем перехожу к автономным скриптам, как только код будет работать. – tmthydvnprt

ответ

0

Да, я считаю, что this question дает ответ. Подводя итог, вы хотите использовать магическую команду %load.

Если выполнить ячейку, содержащую:

%load filename.py 

содержание filename.py будет загружен в соседней камере. Вы можете редактировать и выполнять его как обычно.

1

Вы можете попробовать следующие вещи,
!python filename.py

Существует еще один вариант, кроме того, вы можете копировать вставить код в IPython используя % cpaste и в конце Ctrl + D, чтобы выйти из
%cpaste

%edit
в IPython позволяет ввести код и сохранить в /tmp/ipython_edit_3xhsby0h/ipython_edit_*.py после выхода из режима редактирования он выполняет список строк, написанных в выше использовании файла :q для выхода из режима редактирования
И идти в режиме отладки вы можете попробовать этот
python -m pdb filename.py

Смежные вопросы