Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I start ipython running a script?

Tags:

python

ipython

My use case is I want to initialize some functions in a file and then start up ipython with those functions defined. Is there any way to do something like this?

ipython --run_script=myscript.py
like image 825
johannix Avatar asked Jul 24 '10 00:07

johannix


People also ask

What is the command to run the script in IPython?

You can use run command in the input prompt to run a Python script. The run command is actually line magic command and should actually be written as %run. However, the %automagic mode is always on by default, so you can omit this.

How do I start an IPython session?

You start IPython by typing “ipython” in your terminal. $ ipython Python 2.7. 2 (default, Jun 20 2012, 16:23:33) Type "copyright", "credits" or "license" for more information. IPython 0.13.


4 Answers

In recent versions of ipython you do need to add the -i option to get into the interactive environment afterwards. Without the -i it just runs the code in myfile.py and returns to the prompt.

$ ipython -i myfile.py
like image 88
Maarten Avatar answered Oct 01 '22 14:10

Maarten


Per the docs, it's trivial:

You start IPython with the command:

$ ipython [options] files

If invoked with no options, it executes all the files listed in sequence and drops you into the interpreter while still acknowledging any options you may have set in your ipythonrc file. This behavior is different from standard Python, which when called as python -i will only execute one file and ignore your configuration setup.

So, just use ipython myfile.py... and there you are!-)

like image 26
Alex Martelli Avatar answered Sep 30 '22 14:09

Alex Martelli


You can use ipython profiles to define startup scripts that will run every time you start ipython. A full description of profiles, is given here. You can create multiple profiles with different startup files.

Assuming you only need one profile, and always want the same startup files every time you start ipython, you can simply modify the default profile. To do this, first find out where your ipython configuration directory is in an ipython session.:

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

For this example, I am using Ubuntu Linux, and the config directory is in /home/johndoe/.config/ipython, where johndoe is the username.

The default_profile is in the profile_default subdirectory. Put any starting scripts in profile_default/startup. In the example here, the full path would be /home/johndoe/.config/ipython/profile_default/startup.

like image 32
Caleb Avatar answered Oct 01 '22 14:10

Caleb


Nowadays, you can use the startup folder of ipython, which is located in your home directory (C:\users\[username]\.ipython on Windows). Go into the default profile and you'll see a startup folder with a README file. Just put any Python scripts in there, or if you want ipython commands, put them in a file with an .ipy extension.

like image 35
partofthething Avatar answered Sep 28 '22 14:09

partofthething