Как запустить оболочку Python ipython, автоматически запустить внутри нее несколько команд и оставить ее открытой? - PullRequest
2 голосов
/ 14 июня 2010

Я пытался

echo "print 'hello'" | ipython

Который запускает команду, но ipython сразу же завершается.

Есть идеи? Спасибо!

Edit: На самом деле мне нужно передать команду в интерактивную оболочку Django, например ::

echo "print 'hello'" | python manage.py shell

так что предложенный ключ -i gimel, похоже, не работает (оболочка все еще завершается после выполнения)

Ответы [ 4 ]

4 голосов
/ 14 июня 2010

Используйте тот же флаг, который используется стандартным интерпретатором, -i.

-i

Когда сценарий передается в качестве первого аргумента илиопция -c используется, войдите в интерактивный режим после выполнения сценария или команды, даже если sys.stdin не является терминалом.Файл PYTHONSTARTUP не читается.

Пример Linux, использующий флаг командной строки -c :

$ ipython -i -c 'print "hello, ipython!"'
hello, ipython!

In [2]: print "right here"
right here

In [3]:
2 голосов
/ 26 декабря 2010

Попробуйте использовать ipy_user_conf.py внутри вашего ~ / .ipython

0 голосов
/ 02 ноября 2010

Запуск пользовательского сценария запуска / сценария профиля с оболочкой Django был помечен как закрытый: wontfix .

Однако в этом билете обсуждается расширение Django shell_plus, которое, похоже,то, что ты хочешь.У меня не было возможности проверить это, но похоже, что по крайней мере он может выполнить загрузку для автоматического импорта всех моделей всех установленных приложений (что я обычно использую).

0 голосов
/ 14 июня 2010

Я не уверен в ipython, но базовый интерпретатор python имеет параметр командной строки, который выдает подсказку после выполнения файла, который вы ему дали.У меня нет переводчика, чтобы сказать вам, что это такое, но вы можете получить его, используя python --help.Он должен делать именно то, что вы хотите.

...