Волшебная функция `bash` не найдена

У меня есть куча симуляций, которые я хочу запустить на высокопроизводительном кластере, на котором я должен сделать резервирование, чтобы получить вычислительное время. Поскольку резервирование ограничено по времени, я разрабатываю сценарий автоматизации, который я могу scp вставить в кластер и запустить. Затем этот сценарий загрузит соответствующие файлы моделирования, запустит их и загрузит результаты.

Часть этого скрипта автоматизации находится на bash (cp, scp и т. д.), а остальная часть — на python. Для разработки этой автоматизации я использую блокнот IPython.

До сих пор я закодировал все средства автоматизации Python в своем блокноте IPython и сейчас пытаюсь написать часть bash.

Однако кажется, что волшебство %%bash не работает в моем блокноте IPython. Я получаю следующую ошибку, когда у меня есть этот код в моей ячейке:


Ячейка

%%bash

echo hi

Ошибка

  File "<ipython-input-22-62ec98e35224>", line 3
    echo hi
          ^
SyntaxError: invalid syntax

По прихоти я попробовал это:


Ячейка

%%bash

print "hi"

Ошибка

hi
ERROR: Magic function `bash` not found.

Итак, я попробовал это с %%system, %%! и %%shell. Но ни один из них не работает; все они дают мне ту же ошибку.

Почему это происходит? Как я могу это исправить?

Метаданные:

  • IPython 0.13.dev
  • Питон 2.7.1
  • Mac OS X Лев

person inspectorG4dget    schedule 08.12.2012    source источник


Ответы (2)


Это было вызвано ошибкой версии. Я обновил свою версию IPython (сейчас 0.13.1), и все работает отлично.

Таким образом, может показаться, что эта проблема связана с использованием версии dev (которая была последней версией, когда я установил IPython).

person inspectorG4dget    schedule 08.12.2012

Вы также получите аналогичные ошибки при попытке использовать %%bash на Windows ipython. %%bash там нет. Вместо этого вы получаете %%cmd. Это не то же самое, хотя cmd не bash.

person Chronial    schedule 29.04.2013