2010-07-24 3 views
47

Моим вариантом использования я хочу инициализировать некоторые функции в файле, а затем запустить ipython с определенными функциями. Есть ли способ сделать что-то вроде ipython --run_script = myscript.py?Запустите ipython, запустив скрипт

+0

Почему вы не задаете вопрос ур как вопрос? –

ответ

26

Per the docs, это тривиальное:

Начинаешь IPython с помощью команды:

$ ipython [options] files 

Если вызывается без параметров, она выполняет все файлы, перечисленные в последовательности и переводит вас в интерпретатор , все еще подтверждая любые варианты, которые вы можете установили в вашем файле ipythonrc. Это значение отличается от стандартного Python, которое , когда вызывается как python -i, будет только выполнить один файл и проигнорировать конфигурацию конфигурации .

Так, просто использовать ipython myfile.py ... и вы! -)

+0

Этот ответ теперь устарел. См. Ответ @ Maarten ниже. Вам нужно использовать флаг '-i', а также любые другие параметры, за которыми следует имя скрипта python. Таким образом, вы останетесь в интерпретаторе, а не сразу отбросьте – CPBL

70

В последних версиях IPython вам нужно добавить -i возможность получить в интерактивной среде после этого. Без -i он просто запускает код в файле myfile.py и возвращается в приглашение.

$ ipython -i myfile.py 
+5

. В качестве дополнительной заметки «последние версии» здесь означают после архитектурного обновления 0.10.2 ~> 0.11, а опция «-i» обратно совместима с ipython 0.10.2 (я могу подтвердить) и, вероятно, ниже (могу спекулировать). – DreadPirateShawn

13

В настоящее время, вы можете использовать папку Автозагрузка IPython, который находится в вашем домашнем каталоге (C: \ Users \ [имя пользователя] \ IPython на Windows.). Перейдите в профиль по умолчанию, и вы увидите папку автозагрузки с файлом README. Просто разместите там какие-либо скрипты Python или если вы хотите использовать команды ipython, поместите их в файл с расширением .ipy.

+0

Спасибо, приятно знать о каталоге запуска. Недавно я нашел о exec_files в параметрах файла конфигурации. Кажется, что файлы-файлы запуска запускаются перед записями exec_files. Ссылка информативна. –

+1

'~/.config/ipython/profile_default/startup' на ubuntu – wim

0

Вы, кажется, ищете ipyhton's% run magic command.

Введя в IPython:

%run hello_world.py 

вы будете запускать программу hello.py сохраненную в вашем домашнем каталоге. Функции и переменные, определенные в этом скрипте, также будут доступны вам.

+1

Вопрос в том, как запустить ipython с файлом, а не запускать файл в ipython. –

9

Вы можете использовать профили ipython для определения сценариев запуска, которые будут запускаться каждый раз при запуске ipython. Полное описание профилей дано here. Вы можете создавать несколько профилей с разными файлами автозагрузки.

Предполагая, что вам нужен только один профиль и всегда нужно иметь одинаковые файлы запуска каждый раз при запуске ipython, вы можете просто изменить профиль по умолчанию. Чтобы сделать это, сначала выяснить, где ваш каталог конфигурации IPython находится в IPython сессии .:

In [1]: import IPython 
In [2]: IPython.paths.get_ipython_dir() # As of IPython v4.0 
In [3]: print(ipython_config_dir) 
/home/johndoe/.config/ipython 

Для этого примера я использую Ubuntu Linux, и конфигурационная директория находится в /home/johndoe/.config/ipython, где johndoe это имя пользователя.

Файл default_profile находится в подкаталоге profile_default. Поместите все начальные скрипты в profile_default/startup. В примере здесь полный путь будет /home/johndoe/.config/ipython/profile_default/startup.

+0

в последних версиях IPython, get_ipython_dir() теперь находится в IPython.paths.get_ipython_dir() – lehalle

+0

Спасибо! Это старый пост ... Я исправил его. – Caleb

0

Обновление для ответа Калеба для Python 3.5 в Ubuntu 14.04: Сделал этот ответ самостоятельно, скопировав соответствующие части ответа @ Калеба.

Вы можете использовать профили ipython для определения сценариев запуска, которые будут запускаться каждый раз при запуске ipython. Полное описание профилей дано here. Вы можете создавать несколько профилей с разными файлами автозагрузки.

Предполагая, что вам нужен только один профиль и всегда нужно иметь одинаковые файлы запуска каждый раз при запуске ipython, вы можете просто изменить профиль по умолчанию. Чтобы сделать это, сначала выяснить, где ваш каталог конфигурации IPython находится в IPython сессии .:

Вход:

import IPython 
ipython_config_dir = IPython.paths.get_ipython_dir() 
print(ipython_cofig_dir) 

Выход:

/home/johndoe/.ipython 

В этом примере johndoe это имя пользователя.

В папке /.ipython файл default_profile находится в подкаталоге profile_default. Поместите любые стартовые скрипты в profile_default/startup. В приведенном здесь примере, полный путь будет

/home/johndoe/.ipython/profile_default/startup 
+1

Как именно этот ответ не отвечает на вопрос. Ответ должен полностью содержаться в себе. Я предлагаю завершить его. –

+0

Должен ли я просто отредактировать ответ @Calebs? с этим обновлением! или сделать его самодостаточным? Благодаря! Редактировал его, хотя! –

+1

Я не думаю, что вам следует изменить ответ Калеба, потому что он значительно меняет его. Я бы добавил соответствующую информацию, чтобы ответить на этот вопрос самостоятельно.Поставьте себя в положение кого-то, кто читает ваш ответ, не читая Калеба, и посмотрите, какая информация требуется для этого человека, чтобы следовать вашему ответу. :) –

0

Ниже для случая, когда вы хотите, чтобы ваши сценарии запуска автоматически запускаться всякий раз, когда вы используете IPython (вместо того, чтобы иметь сценарий, который вы должны задать каждый раз, когда вы запустить ipython).

Для последних версий (например, 5.1.0) ipython поместите один или несколько сценариев python, которые вы хотите выполнить в папке IPYTHON_CONFIG_DIR/profile_PROFILENAME/startup.

В Linux, например, вы можете поместить свой код запуска python в файл с именем ~/.ipython/profile_default/startup/10-mystartupstuff.py, если вы хотите, чтобы он запускался, когда не задан профиль ipython.

Информация о создании и использовании профилей ipython доступна here.

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